OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3593|回复: 8

如何通过BKP来实现断电保护

[复制链接]

18

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-12
在线时间
0 小时
发表于 2015-7-10 23:42:34 | 显示全部楼层 |阅读模式
5金钱
如何通过BKP来实现断电保护

最佳答案

查看完整内容[请看2#楼]

参考RTC实验即可。。。 手册都有讲解。。。 开启时钟和访问使能之后,,,一个读函数BKP_ReadBackupRegister,一个写函数BKP_WriteBackupRegister
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2015-7-10 23:42:35 | 显示全部楼层
参考RTC实验即可。。。
手册都有讲解。。。
开启时钟和访问使能之后,,,一个读函数BKP_ReadBackupRegister,一个写函数BKP_WriteBackupRegister
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复

使用道具 举报

26

主题

467

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
876
金钱
876
注册时间
2013-10-3
在线时间
23 小时
发表于 2015-7-10 23:45:58 | 显示全部楼层
不是有那个纽扣电池吗??
避免犯错本是错误所在,我错故我在……
回复

使用道具 举报

18

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-12
在线时间
0 小时
 楼主| 发表于 2015-7-11 10:59:41 | 显示全部楼层
回复【2楼】zhang164534:
---------------------------------
有历程么
回复

使用道具 举报

40

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-11-21
在线时间
22 小时
发表于 2015-7-11 11:53:34 | 显示全部楼层
[mw_shl_code=c,true]void BKP_Write(void) { u8 i; RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE); //使能PWR和BKP外设时钟 PWR_BackupAccessCmd(ENABLE); //使能后备寄存器访问 RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成 // RTC_WaitForSynchro(); //等待RTC寄存器同步 使用这个函数需要打开RTC,否择有可能死在这里 RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成 RTC_WaitForLastTask(); //等待最近一次对RTC寄存器的写操作完成 for(i=1;i<43;i++) { if(i<21)BKP_WriteBackupRegister(0x0000+i*4,read_D (7450+i-1,1)); //D7450 ~ D7469 共20个D电池保存 if(i>20 && i<31)BKP_WriteBackupRegister(0x0000+i*4,read_D (7450+i-1,1)); //D7479 if(i>30 && i<41)BKP_WriteBackupRegister(0x0000+i*4,read_D (7450+i-1,1)); //D7489 if(i==41)BKP_WriteBackupRegister(0x0000+i*4,all_data[0x009D]); //M2512 ~ M2527 共16个M电池保存 if(i==42)BKP_WriteBackupRegister(0x0000+i*4,sysdata); } } void BKP_Read(void) { u8 i; for(i=1;i<43;i++) { if(i<21)write_D (7450+i-1,1,BKP_ReadBackupRegister(0x0000+i*4)); //从指定的后备寄存器中读出数据 if(i>20 && i<31)write_D (7450+i-1,1,BKP_ReadBackupRegister(0x0000+i*4)); if(i>30 && i<41)write_D (7450+i-1,1,BKP_ReadBackupRegister(0x0000+i*4)); if(i==41)all_data[0x009D] = BKP_ReadBackupRegister(0x0000+i*4); if(i==42) sysdata = BKP_ReadBackupRegister(0x0000+i*4); } }[/mw_shl_code]

打倒A莫,打倒小日本
回复

使用道具 举报

18

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-12
在线时间
0 小时
 楼主| 发表于 2015-7-11 12:42:40 | 显示全部楼层
怎么写入数据
回复

使用道具 举报

40

主题

107

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
308
金钱
308
注册时间
2014-11-21
在线时间
22 小时
发表于 2015-7-11 13:20:55 | 显示全部楼层
回复【5楼】棒棒糖:
---------------------------------
BKP_WriteBackupRegister
打倒A莫,打倒小日本
回复

使用道具 举报

18

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-12
在线时间
0 小时
 楼主| 发表于 2015-7-11 14:19:03 | 显示全部楼层
读出来呢,之前给的代码是初始化么
回复

使用道具 举报

18

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
132
金钱
132
注册时间
2015-6-12
在线时间
0 小时
 楼主| 发表于 2015-7-11 16:20:11 | 显示全部楼层
RTC的程序看着有点混乱,备注有点少,不太懂
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-20 06:07

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表