FLASH程序中有段语句无法理解,求大神指点

2019-07-21 01:37发布

[mw_shl_code=c,true]void STMFLASH_Write(u32 WriteAddr,u32 *pBuffer,u32 NumToWrite) { FLASH_Status status = FLASH_COMPLETE; u32 addrx=0; u32 endaddr=0; if(WriteAddr<STM32_FLASH_BASE||WriteAddr%4)return; FLASH_Unlock(); FLASH_DataCacheCmd(DISABLE) addrx=WriteAddr; endaddr=WriteAddr+NumToWrite*4; if(addrx<0X1FFF0000) { while(addrx<endaddr) { if(STMFLASH_ReadWord(addrx)!=0XFFFFFFFF) { status=FLASH_EraseSector(STMFLASH_GetFlashSector(addrx),VoltageRange_3); if(status!=FLASH_COMPLETE)break; }else addrx+=4; } } 里面的 FLASH_Status status = FLASH_COMPLETE;这句该如何理解啊,想了半个小时想不通[/mw_shl_code]

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
七月底了
2019-07-21 10:07
回复【2楼】Admin:
---------------------------------
额,懂了,谢谢,
还有一个问题
if(addrx<0X1FFF0000) //只有主存储,才需要执行擦除工作!
关于这一条判断语句,假如FLASH不是1024K的容量也是应该如此判断吗?
还是要根据具体容量大小进行判断,假如是一个512K的只有前面8个扇区,是否应该以扇区8的起始地址0x08080000来判断?

一周热门 更多>