void Read_Flash_Data(u8 *dat, u32 addr, u16 length)
{
static u16 leng_标志寄存器;
leng_标志寄存器 = length;
SPI_FLASH_SET;
(void)SPI_Send_Data(0x000B);
(void)SPI_Send_Data(addr>>16);
(void)SPI_Send_Data(addr>>8);
(void)SPI_Send_Data(addr);
(void)SPI_Send_Data(EMPTY_INST);
while(leng_标志寄存器--) {
*(dat++) = SPI_Send_Data(EMPTY_INST);
}
SPI_FLASH_CLR;
}
/*Page Program*/
void Page_Program(u8 *dat, u32 addr)
{
u16 tmp_length;
tmp_length = PAGE_SIZE;
Write_Enabled();
SPI_FLASH_SET;
(void)SPI_Send_Data(0x0002);
(void)SPI_Send_Data(addr>>16);
(void)SPI_Send_Data(addr>>8);
(void)SPI_Send_Data(addr);
while(tmp_length--)
(void)SPI_Send_Data(*dat++);
SPI_FLASH_CLR;
Wait_State_Busy();
Write_Disable();
}
/* End SPI_Flash*/
上段代码更清楚。
|