Files
HBshuiwuConcentrator/shuangjia/SPI_Flash.h
2025-12-15 16:07:49 +08:00

62 lines
2.3 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#ifndef _SPI_FLASH_H_
#define _SPI_FLASH_H_ 1
#include "Flash.h"
//===========ATMEL 081D flash==================
#define FLASH_CHREAD 0x0B
#define FLASH_CLREAD 0x03
#define FLASH_PREAD 0xD2
#define FLASH_BUFWRITE1 0x84
#define FLASH_IDREAD 0x9F
//#define FLASH_STATUS 0xD7
#define PAGE_ERASE 0x81
//#define PAGE_READ 0xD2 //011D 264
#define PAGE_READ 0x52 //161D 528
#define MM_PAGE_TO_B1_XFER 0x53 // 将主存储器的指定页数据加载到第一缓冲区
#define BUFFER_2_WRITE 0x87 // 写入第二缓冲区
#define B2_TO_MM_PAGE_PROG_WITH_ERASE 0x86 // 将第二缓冲区的数据写入主存储器(擦除模式)
#define Dummy_Byte 0xA5
//===========MXIC 8006E flash==================
#define FLASH_STATUS 0x05
//#define PAGE_READ
/* Select SPI FLASH: ChipSelect pin low */
#define Select_Flash() GPIO_ResetBits(GPIOB, GPIO_Pin_12)
/* Deselect SPI FLASH: ChipSelect pin high */
#define NotSelect_Flash() GPIO_SetBits(GPIOB, GPIO_Pin_12)
#define sFLASH_PAGE_MASK 0xFFF00
#define sFLASH_PAGE_SIZE 0x100
#define DOWN_ONE_FRAME_LENGTH 200 //2013-03-19
void Delay_100us_1(void);
void SPI_Flash_Init(void); //SPI初始化
u8 SPI_Flash_ReadByte(void); //flash操作基本函数读一个字节
u8 SPI_Flash_SendByte(u8 byte);
//void SPI_Flash_SendByte(unsigned char Update_Data); // FLASH操作基本函数发送一个字节
//void FlashPageEarse(u16 page); //擦除指定的页,页范围0-4095
void FlashPageRead(unsigned int wPage,unsigned char *Update_Ptr); //读取整页页范围0-4095
void FlashPageWrite(u16 wPage,u8 *Data); //写一整页页范围0-4095
void flash_page_read(unsigned short wPage, unsigned char* pData);
void FlashWaidBusy(void);
void flash_write_enable(void);
void FlashWaitBusy(void); //Flash忙检测
void FlashReadID(u8 *ProdustID); //读取flashID四个字节
void D_spiWriteFlash(unsigned int iadr, unsigned short nbyte, unsigned char* psrc_data);
void D_spiReadFlashPage(unsigned int iadr,unsigned short ilen,unsigned char *pdin_data);
void D_spiFlashRead(u32 iaddr,u16 length, u8 *pdin_data);
void D_spiFlashWrite(u32 iadr, u16 length, u8 *psrc_data);
void UClearWatchdog(void);//@ "FLASHCODE"
void Flash_Page_Read(unsigned int wPage,unsigned char *Update_Ptr);
void flash_sector_erase(unsigned int uiAddr);
void flash_sector_write(unsigned int uiAddr, unsigned short wLen);
void flash_fast_read( unsigned int iAddr, unsigned short wLen );
#endif