問題描述
在使用正點原子的STM32F407寫flash例程時,發現STMFLASH_Write函數沒辦法寫入數據到flash,原始代碼輸入下:
隨后對每一行代碼的結果進行分析,發現87行的“FLASH_ProgramWord(WriteAddr,*pBuffer)”返回值是7,一直是寫入異常。
解決辦法
由于沒找到解決辦法,于是去下載了ST官方的示例代碼查找下思路,在“STM32F4xx_DSP_StdPeriph_Lib_V1.8.0\Project\STM32F4xx_StdPeriph_Examples\FLASH\FLASH_Program”目錄下有FLASH的示例代碼。
發現示例代碼在解鎖后還要清除一些標志位,于是把這句清除標志位代碼加到自己代碼里面,再次運行,Flash就能正常寫入了!
補充說明,這些標志位的作用如下表所示: