基于NUCLEO_STM32F302R8T6 Kit 调不通 关于FLASH 仿真eeprom_emulation 的程序调不通,因此来请教一下 这只程序我已经成功在STM32F103 上面可以调通使用了,一切正常 但在STM32F3 系列的MCU 上面,程序会一直停在 FLASH_ProgramWord(FLASH_SAVE_ADDR+0, 0x12345648); 应该说只要执行读写的动作,程序就会停止,例如以下两个库 FLASH_ProgramWord(FLASH_SAVE_ADDR+0,Test_String[0]); Test_Block[0] = ( *(__IO uint32_t*)(FLASH_SAVE_ADDR+0) ); 是不是在F3 MCU 上面有什么需要注意的地方我忽略了? 还请高手指导一下 以下为部分代码 /* Unlock the Flash Program Erase controller */ FLASH_Unlock(); /*Clearn Flag*/ FLASH_ClearFlag(FLASH_FLAG_PGERR); FLASH_ClearFlag(FLASH_FLAG_WRPERR); FLASH_ClearFlag(FLASH_FLAG_EOP); FLASH_ClearFlag(FLASH_FLAG_BSY); /*ErasePage page ((uint32_t)0x0807F800) //起始位*/ FLASH_ErasePage(FLASH_SAVE_ADDR); /*Write data to EEPROM */ FLASH_ProgramWord(FLASH_SAVE_ADDR+0, Test_String[0]); /* Lockthe Flash Program Erase controller */ FLASH_Lock(); /* Readdata from EEPROM to verification */ Test_Block[0] = ( *(__IO uint32_t*) (FLASH_SAVE_ADDR+0) ); /* Output to check */ for(ia=0; ia<9 ; ia++) { USART_SendData(USART3,Test_Block[ia]); Delay(1); } |
指向了非Flash区域?
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分
STM32F302R8是64K Flash的,不知道FLASH_SAVE_ADDR是怎么定义的,如果是注释中的0x0807F800,那么该地址超出64K 地址范围了。
评分
查看全部评分
有道理,先确保在Flash地址范围内
评分
查看全部评分