打印
[STM32F1]

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

[复制链接]
2674|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mcuatmel|  楼主 | 2014-6-5 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
它的地址最大可以达到最大值还是需要留出一部分?它的地址高端是否被类似引导程序什么的占用?
沙发
mmuuss586| | 2014-6-5 18:27 | 只看该作者
看这个图

使用特权

评论回复
板凳
mmuuss586| | 2014-6-5 18:32 | 只看该作者
看看F0的EEPROM中文资料,原理图上类似的;
STM32F0xx 微控制器中的EEPROM 仿真.pdf (451.38 KB)

使用特权

评论回复
地板
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的内容,这个是怎么回事,应该从哪儿改。

使用特权

评论回复
5
mcuatmel|  楼主 | 2014-6-6 11:57 | 只看该作者
是我的程序错了,读的时候地址算错了,是擦了2K。

使用特权

评论回复
6
jijiahui555| | 2017-3-18 17:43 | 只看该作者
2k的话是2048字节码?

使用特权

评论回复
7
hellosdc| | 2017-3-18 22:38 | 只看该作者
这个不是内部有Flash吗

使用特权

评论回复
8
hellosdc| | 2017-3-18 22:40 | 只看该作者
可以使用Flash模拟EEPROM

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

512

主题

1456

帖子

2

粉丝