| | 主频:64M<br/>stlink V2进行写flash。通过debug可以看到地址上写入了正确的数据,在单片机不重启的情况下,读取数据也是正常的如下图 | | | ------------------------------------------------------------------------------------------------------------------------------- | --- |  |
如需获得 STM32G031G8U6 等器件的更多信息,请点击链接或 点击此处 联系在线客服!
写入了6个32位的数据,可以在线仿真看到数据,断电之后读取不到数据。读写函数如下 void STMFLASH_Write(uint32_t WriteAddr,uint32_t *pBuffer,uint32_t NumToWrite) { FLASH_EraseInitTypeDef FlashEraseInit; HAL_StatusTypeDef FlashStatus=HAL_OK; uint32_t PageError=0; uint32_t addrx=0; uint32_t endaddr=0; if(WriteAddr
从现象上看是写入成功了,断电后,进入boot模式,读取芯片FLASH的内容后再看看是否存在。如果数据是存在的,可能是上电以后有过对这片FLASH的操作。或者是重新烧写程序后,内容擦除。
最好在执行前加个判断条件,以防上电被快速执行了。或者加一个按键启动也好判断。 至于代码方面,参照官方库里面的例程就好了。