你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
mylovemcu 发表于 2019-10-10 09:19 执行擦除后读取忙标志没有 因为擦除需要时间的 执行完擦除指令后可以加延时 也可以等待忙标志结束 擦除 ...
watercici 发表于 2019-10-11 22:36 我的擦除函数中增加了等待忙结束的标志,可是还得加延时,不知道为什么? ...
安 发表于 2019-10-13 20:17 楼主最好把代码贴一下,这样好分析问题。
mylovemcu 发表于 2019-10-12 08:08 不能吧 忙标志写的有没有问题 确认一下 起作用了没有 我的就是等待完忙标志直接写的啊 没有问题的 ...
我的擦除函数中增加了等待忙结束的标志,可是还得加延时,不知道为什么?
不能吧 忙标志写的有没有问题 确认一下 起作用了没有
我的就是等待完忙标志直接写的啊 没有问题的
void Flash_Sector_Erase(u32 addr)
{
u8 sadr1,sadr2,sadr3;
sadr1 = (addr & 0xff0000)>>16;
sadr2 = (addr & 0xff00)>>8;
sadr3 = addr & 0xff;
Flash_WaitforWriteEnd();
Flash_Write_EnorDis(ENABLE);//0x06
SPI2_Flash_CS_LOW();
SPI_FLASH_SendByte(SECTOR_ERASE);
SPI_FLASH_SendByte(sadr1);
SPI_FLASH_SendByte(sadr2);
SPI_FLASH_SendByte(sadr3);
SPI2_Flash_CS_HIGH();
Flash_WaitforWriteEnd();
}
void Flash_PagePro(u8 *Pdat,u32 addr,u16 Len)
{
u8 padr1,padr2,padr3;
u8 i;
padr1 = (addr & 0xff0000)>>16;
padr2 = (addr & 0xff00)>>8;
padr3 = addr & 0xff;
Flash_WaitforWriteEnd();
Flash_Write_EnorDis(ENABLE);
SPI2_Flash_CS_LOW();
SPI_FLASH_SendByte(PAGE_PROGRAM);//Ò³±à³Ì0x02
SPI_FLASH_SendByte(padr1);
SPI_FLASH_SendByte(padr2);
SPI_FLASH_SendByte(padr3);
for(i=0;i<Len;i++)
{
SPI_FLASH_SendByte(Pdat);
}
SPI2_Flash_CS_HIGH();
Flash_WaitforWriteEnd();
}
是这样的,代码你已贴在楼下了,你帮忙看看