| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- #pragma once
- #include "ver_config.h"
- #ifdef GD25Q16_FLASH
- #include "stdint.h"
- #define AT45DB_BUFFER_1_WRITE 0x84 /* 写入第一缓冲区 */
- #define AT45DB_BUFFER_2_WRITE 0x87 /* 写入第二缓冲区 */
- #define AT45DB_BUFFER_1_WRITE_FLASH 0x82 /* 写入第一缓冲区 */
- #define AT45DB_BUFFER_2_WRITE_FLASH 0x85 /* 写入第二缓冲区 */
- #define AT45DB_BUFFER_1_READ 0xD4 /* 读取第一缓冲区 */
- #define AT45DB_BUFFER_2_READ 0xD6 /* 读取第二缓冲区 */
- #define AT45DB_B1_TO_MM_PAGE_PROG_WITH_ERASE \
- 0x83 /* 将第一缓冲区的数据写入主存储器(擦除模式)*/
- #define GD25Q16_MM_PAGE_PROG_WITH_ERASE \
- 0x02 /* 将第二缓冲区的数据写入主存储器(擦除模式)*/
- #define AT45DB_MM_PAGE_TO_B1_XFER \
- 0x53 /* 将主存储器的指定页数据加载到第一缓冲区 */
- #define AT45DB_MM_PAGE_TO_B2_XFER \
- 0x55 /* 将主存储器的指定页数据加载到第二缓冲区 */
- #define AT45DB_PAGE_ERASE 0x81 /* 页删除(每页512/528字节) */
- #define AT45DB_SECTOR_ERASE 0x7C /* 扇区擦除(每扇区128K字节)*/
- #define GD25Q16SECTOR_ERASE 0x20 /* 扇区擦除(每扇区4K字节)*/
- #define GD25Q16_READ_STATE_REGISTER 0X05 /* 读取状态寄存器 */
- #define GD25Q16_WRITE 0x02 /* 写入数据 */
- #define AT45DB_BLACK_ERASE 0x50 /* 块删除(每块4KByte)*/
- #define GD25Q16_MM_PAGE_READ 0X03 /* 直接读主存储器的内存页*/
- #define AT45DB_Continuous_Read 0x0B
- #define GD25Q16_WRITE_ENABLE 0x06 /* 写使能 */
- #define GD25Q16_WRITE_DISABLE 0x04 /* 写禁止 */
- #define FLASH_PAGE_TOTAL 4096 // 0..4095
- #define FLASH_PAGE_SIZE 512
- #define FLASH_SIZE_KBYTE 2112
- //浮点 联合体
- typedef union {
- float value;
- unsigned char byte[4];
- } f_bytes;
- //整数 联合体
- typedef union {
- short value;
- unsigned char byte[2];
- } i_bytes;
- void flash_at45db_init(void);
- uint8_t AT45DB_Check(void);
- uint8_t AT45DB_IS_BUSY(void);
- void AT45DB_Read_Bytes(uint32_t add, uint8_t *pdata, uint16_t len);
- void AT45DB_Write_Bytes(uint32_t add, uint8_t *pdata, uint16_t len);
- int16_t AT45DB_Read_int16(uint32_t add);
- void AT45DB_Write_int16(uint32_t add, int16_t wvalue);
- void AT45DB_ReadPage(uint16_t Page_Add, uint8_t *pdata);
- void AT45DB_WritePage(uint16_t page, uint8_t *Data);
- void AT45DB_WriteBytes_OnOnePage(uint16_t page, uint8_t *Data, uint16_t len);
- void gd25q16_cs_high(void);
- void gd25q16_cs_low(void);
- void test_gd25q16_quick(void);
- #endif
|