【问题标题】:STM32F207 Nucleo144 board, writing in permanent memorySTM32F207 Nucleo144板,写入永久内存
【发布时间】:2019-10-20 23:45:51
【问题描述】:

我目前正在研究 Nucleo f207zg。 我想将其变量写入其永久存储器(EEPROM)。 我怎样才能实现它?

我找不到相同的读取或写入函数。

【问题讨论】:

  • 这部分好像没有 EEPROM。它具有 4 KB 的 SRAM,可以由电池供电并用作非易失性存储器。请花时间对您正在使用的部件进行研究。
  • 断电后如何访问SRAM存储数据?

标签: c stm32 eeprom nucleo


【解决方案1】:

STM32F2 控制器没有内部 EEPROM 存储器。

他们有 FLASH,只有 10000 个保证擦除周期,并且擦除块大小相对较大,为 128 kBytes。 AFAIK 它不支持边读边写操作,因此整个系统在内容更新时处于静止状态。

它对于存储不经常更改的东西仍然很有用,例如用户偏好或校准值。

与其他一些控制器系列不同,闪存写入功能在单独的文档STM32F207 Flash programming manual 中进行了描述。没有“读取功能”,因为它的内容可以像任何其他内部存储单元一样读取。

【讨论】:

  • 我有兴趣更改板子的 IP。板子的 IP 更改(我可以 ping 它)但是一旦我重置它,它会自动采用我在 STM32 中设置的默认 IP立方体MX。如何将更改后的 IP 保存在永久内存中。
  • 一个IP地址可以存储4个字节。当闪存被擦除时,所有字节都设置为 255。由于255.255.255.255 不是有效的 IP 地址,您可以简单地在闪存块中查找第一个未使用的插槽,并将地址写入那里。启动时,查找闪存中的最后一条有效记录。当闪存扇区已满时,将其擦除并重新开始。
  • 我们可以直接使用头文件stm32f2xx_hal_flash.h和stm32f2xx_hal_flash.h吗?我在 keil 版本 5 上编程。
  • HAL 库中应该有几个使用这个接口的示例程序。如果找不到,请下载整个STM32CubeF2 package
  • 我刚刚匹配了变量 IP_ADDRESS 的地址(它存储在内存中)。我知道它存储在地址 0x2000 0018,这是 sram 中的地址。我希望如果我更改此变量的值,那么在重置时它应该保持更改后的值。
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2017-06-06
  • 2012-05-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-23
相关资源
最近更新 更多