手把手学STM32(二)虚拟串口在线升级IAP代码篇
在上一篇博客中我提到了STM32F407+虚拟串口在线升级的基本原理,这一篇我讲一下关于一些,在虚拟串口在线升级的代码和注意的一些细节。
在线升级原理不清楚的请移步参考上一篇[我用一张图了解虚拟串口IAP](https://blog.youkuaiyun.com/cs111211/article/details/105142049)
1.升级代码讲解
1)拷贝app代码到flash。
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