[STM32F1] 请问STM32F107RC的Flash模拟EEPROM的地址范围

[复制链接]
2955|7
 楼主| mcuatmel 发表于 2014-6-5 16:17 | 显示全部楼层 |阅读模式
它的地址最大可以达到最大值还是需要留出一部分?它的地址高端是否被类似引导程序什么的占用?
mmuuss586 发表于 2014-6-5 18:27 | 显示全部楼层
看这个图
捕获.JPG
mmuuss586 发表于 2014-6-5 18:32 | 显示全部楼层
看看F0的EEPROM中文资料,原理图上类似的;
STM32F0xx 微控制器中的EEPROM 仿真.pdf (451.38 KB, 下载次数: 23)
 楼主| mcuatmel 发表于 2014-6-6 11:49 | 显示全部楼层
这文件我看了,就是我恍惚记得有些处理器会把高端地址占一部分做Boot程序用,所以,不知道在STM32这类处理器上有没有这一说,例如Jtag调试程序是不是放在这个位置了或引导什么的。
还有,今天调程序又发现一个问题,这个107应该是2K的flash page,那么我调用
FLASH_Status FLASH_ErasePage(uint32_t Page_Address)
{
  FLASH_Status status = FLASH_COMPLETE;
  /* Check the parameters */
  assert_param(IS_FLASH_ADDRESS(Page_Address));
  /* Wait for last operation to be completed */
  status = FLASH_WaitForLastOperation(EraseTimeout);
  
  if(status == FLASH_COMPLETE)
  {
    /* if the previous operation is completed, proceed to erase the page */
    FLASH->CR|= CR_PER_Set;
    FLASH->AR = Page_Address;
    FLASH->CR|= CR_STRT_Set;
   
    /* Wait for last operation to be completed */
    status = FLASH_WaitForLastOperation(EraseTimeout);
    if(status != FLASH_TIMEOUT)
    {
      /* if the erase operation is completed, disable the PER Bit */
      FLASH->CR &= CR_PER_Reset;
    }
  }
  /* Return the Erase Status */
  return status;
}
只擦了1K的内容,这个是怎么回事,应该从哪儿改。
 楼主| mcuatmel 发表于 2014-6-6 11:57 | 显示全部楼层
是我的程序错了,读的时候地址算错了,是擦了2K。
jijiahui555 发表于 2017-3-18 17:43 | 显示全部楼层
2k的话是2048字节码?
hellosdc 发表于 2017-3-18 22:38 | 显示全部楼层
这个不是内部有Flash吗
hellosdc 发表于 2017-3-18 22:40 | 显示全部楼层
可以使用Flash模拟EEPROM
您需要登录后才可以回帖 登录 | 注册

本版积分规则

512

主题

1456

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部