你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

eeprom_emulation 基于 NUCLEO_STM32F302R8T6 Kit 调不通

[复制链接]
小橘仔 提问时间:2017-1-7 23:14 /
基于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);                 
      }   
     

收藏 2 评论8 发布时间:2017-1-7 23:14

举报

8个回答
无薪税绵 回答时间:2017-1-23 10:19:41
FLASH_SAVE_ADDR 这个地址会不会错了?
指向了非Flash区域?

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

Paderboy 回答时间:2017-1-23 10:30:57
你可以参考下,F3 HAL库里的NUCLEO_STM32F302R8 FLASH_EraseProgram例程。。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

boboo-23776 回答时间:2017-1-23 11:47:44
读写flash 错误了

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

zoomdy 回答时间:2017-1-23 12:33:51
有没有产生异常?
zoomdy 回答时间:2017-1-23 12:37:19
  1.       /*ErasePage page ((uint32_t)0x0807F800)        //起始位*/            
  2.      FLASH_ErasePage(FLASH_SAVE_ADDR);
复制代码

STM32F302R8是64K Flash的,不知道FLASH_SAVE_ADDR是怎么定义的,如果是注释中的0x0807F800,那么该地址超出64K 地址范围了。

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

toofree 回答时间:2017-1-23 17:23:07
zoomdy 发表于 2017-1-23 12:37
STM32F302R8是64K Flash的,不知道FLASH_SAVE_ADDR是怎么定义的,如果是注释中的0x0807F800,那么该地址超 ...

有道理,先确保在Flash地址范围内

评分

参与人数 1ST金币 +2 收起 理由
zero99 + 2

查看全部评分

队长shiwo 回答时间:2017-1-23 17:36:57
学习学习
cldym 回答时间:2017-1-23 20:21:57
有没有产生异常?

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版