37 lines
1.5 KiB
C
37 lines
1.5 KiB
C
|
|
#ifndef __W25QXX_H
|
|||
|
|
#define __W25QXX_H
|
|||
|
|
|
|||
|
|
#include "main.h"
|
|||
|
|
|
|||
|
|
#define Flash_CS_Pin GPIO_PIN_4
|
|||
|
|
#define Flash_CS_Port GPIOA
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
#define CS_DISENABLE HAL_GPIO_WritePin(Flash_CS_Port, Flash_CS_Pin, GPIO_PIN_SET); //CS<43><53>Ч<EFBFBD>ź<EFBFBD>
|
|||
|
|
#define CS_ENABLE HAL_GPIO_WritePin(Flash_CS_Port, Flash_CS_Pin, GPIO_PIN_RESET); //CS<43><53>Ч<EFBFBD>ź<EFBFBD>
|
|||
|
|
|
|||
|
|
#define W25QxxID 0XEF16 //W25Qxx ID
|
|||
|
|
#define W25Qxx_WriteEnable 0x06 //дʹ<D0B4><CAB9>
|
|||
|
|
#define W25Qxx_WriteDisable 0x04 //д<><D0B4>ֹ
|
|||
|
|
#define W25Qxx_ReadStatusReg1 0x05 //<2F><>״̬<D7B4>Ĵ<EFBFBD><C4B4><EFBFBD>1ָ<31><D6B8>
|
|||
|
|
#define W25Qxx_SectorErase 0x20 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4KB<4B><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
#define W25Qxx_BlockErase 0xD8 //<2F>飨64KB<4B><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
#define W25Qxx_PageProgram 0x02 //ҳ<><D2B3>256B<36><42>д<EFBFBD><D0B4>ָ<EFBFBD><D6B8>
|
|||
|
|
#define W25Qxx_ReadData 0x03 //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|||
|
|
#define W25Qxx_Powerdown 0xB9 //Powerdownָ<6E><D6B8>
|
|||
|
|
|
|||
|
|
void w25qxxInit(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>W25Qxx
|
|||
|
|
void w25qxxWriteEnable(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78><78>дʹ<D0B4><CAB9>
|
|||
|
|
void w25qxxWrite_Disable(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78><78>д<EFBFBD><D0B4>ֹ
|
|||
|
|
uint16_t w25qxxReadID(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡW25QxxоƬID
|
|||
|
|
void w25qxxWaitBusy(void); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void w25qxxErase_Sector(uint16_t); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78><78><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>4KB<4B><42>
|
|||
|
|
void w25qxxErase_Block(uint8_t); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78><78><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>飨64KB<4B><42>
|
|||
|
|
void w25qxxWrite_Page(uint8_t*, uint16_t); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxxд<78><D0B4>һҳ<D2BB><D2B3><EFBFBD>ݣ<EFBFBD>256<35>ֽڣ<D6BD>
|
|||
|
|
void w25qxxRead(uint8_t*,uint32_t,uint32_t); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W25Qxx<78><78>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
|
|||
|
|
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
|