后备SRAM掉电不能保存数据

2019-07-20 11:33发布

[mw_shl_code=c,true]#define BKP_RAM1 (*(__IO uint16_t *) (BKPSRAM_BASE+16)) int main(void) { uart1_init(115200); printf("############# "); RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE); PWR_BackupAccessCmd(ENABLE); if(BKP_RAM1 != 0xAABB) { BKP_RAM1 = 0xAABB; printf("写入BKPSRAM "); } else { printf("BKP_RAM1=%X ",BKP_RAM1); } if(RTC_ReadBackupRegister(RTC_BKP_DR1) != 0x5050) { RTC_WriteBackupRegister(RTC_BKP_DR1, 0X5050); printf("写入RTCBKP "); } else { printf("RTC_BKP_DR1=%X ",RTC_ReadBackupRegister(RTC_BKP_DR1)); } }[/mw_shl_code]
测试程序如上,RTC后备寄存器正常不丢数据,但是后备SRAM复位的时候数据不丢,掉电后数据就没了。求解?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
正点原子
1楼-- · 2019-07-21 06:10
 精彩回答 2  元偷偷看……
solo
2楼-- · 2019-07-21 10:25
回复【8楼】正点原子:
---------------------------------
按理说应该是以BKPSRAM_BASE(0x40024000)为基地址偏移4kb的地址范围,测试的时候就写了两个4字节的数据没问题,后来多写些就出现上面的错误,无语。。。只能先用RTC后备寄存器
styleno1
3楼-- · 2019-07-21 15:45
没用过F10x以外的,ST居然有这么大的Backup RAM,很实用啊。
solo
4楼-- · 2019-07-21 16:37
 精彩回答 2  元偷偷看……
zuoyi
5楼-- · 2019-07-21 19:43
希望楼主解决问题后,再分享。暂时还是使用103
正点原子
6楼-- · 2019-07-21 20:16
回复【9楼】solo:
---------------------------------
等有时间再去折腾这东西。

一周热门 更多>