在STM32F4上有两种仿真EEPROM的方法:
片上4 KB备份SRAM
片上Flash,具有特定的软件算法
此处描述了第二个选项:AN3969。
但是,不幸的是,谷歌未能提供有关如何使用第一种选择的信息-使用4Kb的备用SRAM作为EEPROM吗?
有人可以帮忙吗?
最佳答案
必须执行以下操作:
使能PWR时钟
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
启用对备份域的访问
PWR_BackupAccessCmd(ENABLE);
启用备用SRAM时钟
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);
启用备用SRAM低功耗稳压器以将其内容保留在VBAT模式下
PWR_BackupRegulatorCmd(ENABLE);
并且您可以向sram写入/读取数据(这些代码来自STM32F4xx_DSP_StdPeriph_Lib中的BKP_Domain代码)(在我的mcu stm32f417 BKPSRAM_BASE = 0x40024000中)
// Write to Backup SRAM with 32-Bit Data
for (i = 0x0; i < 0x100; i += 4) {
*(__IO uint32_t *) (BKPSRAM_BASE + i) = i;
}
// Check the written Data
for (i = 0x0; i < 0x100; i += 4) {
if ((*(__IO uint32_t *) (BKPSRAM_BASE + i)) != i){
errorindex++;
}
}
然后,如果您想要:
// Wait until the Backup SRAM low power Regulator is ready
while(PWR_GetFlagStatus(PWR_FLAG_BRR) == RESET)
{}
您可以在STM32F4xx_DSP_StdPeriph_Lib中找到这些功能。
关于stm32 - 如何在STM32F4中将备用SRAM用作EEPROM,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20667754/