OpenEdv-开源电子网

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

用后备寄存器bkp当掉电储存

[复制链接]

7

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2014-7-5
在线时间
21 小时
发表于 2014-7-7 20:56:20 | 显示全部楼层 |阅读模式
     今天写了个后备寄存器当掉电储存的程序,花了一个下午调试基本成功。留着以后如果用最小系统板,要保存的数据有不多时可以用。程序贴上需要的童鞋可以参考参考
[mw_shl_code=c,true] u16 Data[4];//外部变量,在此文件.H中定义(要保存的数据) u8 p; //要保存的数据数(不要超过BKP后备寄存器位) //外部中断16服务程序 (断电) void PVD_IRQHandler(void) { BKP_Write(Data,p); //写入BKP } //写入BKP void BKP_Write(u16 *data,u8 b) { u8 e; vu16 *d; RCC->APB1ENR|=1<<27;//备份时钟开启 PWR->CR|=1<<8;//允许写入后备寄存器 d=&(BKP->DR1); for(e=0;e<b;e++) { *d=*data; data++; d++; } } //外部中断初始化程序 //初始化PA0,PA13,PA15为中断输入. void PVD_IR(void) { RCC->APB1ENR|=1<<28; //使能电源时钟 PWR->CR|=1<<4;//开启电源监测 PWR->CR|=3<<5;//PLS 011:2.5V PWR->CSR|=1<<2;//低与PLS PVD输出 EXTI->IMR|=1<<16;//开放16线中断 EXTI->EMR|=1<<16; EXTI->RTSR|=1<<16;//上升沿触发 MY_NVIC_Init(2,2,PVD_IRQChannel,2); //抢占2,子优先级2,组2 } //程序开始读数据 void BKP_Read(u16 *data,u8 b) { u8 c; vu16 *d; RCC->APB1ENR|=1<<27;//备份时钟开启 d=&(BKP->DR1); for(c=0;c<b;c++) { *data=*d; data++; d++; } }
[mw_shl_code=c,true]int main(void)//主程序是自己调试用的!写的不好,反正寄存器配置还是可以参考参考的。 { u16 a[4]; Data[0]=0x2222;//自己要保存的数据 Data[1]=0X9999; //自己要保存的数据 p=2; //假设要保存2位 Stm32_Clock_Init(9); //系统时钟设置 delay_init(72); //延时初始化 uart_init(72,9600); //串口初始化 LED_Init(); //初始化与LED连接的硬件接口 PVD_IR(); //中断初始化 BKP_Write(Data,p); BKP_Read(a,4); while(1) { if(a[0]==0xffff)LED1=0; a[3]=BKP->DR1; } }[/mw_shl_code]

[/mw_shl_code]
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

7

主题

30

帖子

0

精华

初级会员

Rank: 2

积分
145
金钱
145
注册时间
2014-7-5
在线时间
21 小时
 楼主| 发表于 2014-7-7 21:00:12 | 显示全部楼层
<div   style="background-color:#E8E8E8;">
<pre class="brush:cpp ;">不知道为什么多了怎么些东西!
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-7-7 23:37:55 | 显示全部楼层
谢谢分享。。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
75
金钱
75
注册时间
2014-4-24
在线时间
0 小时
发表于 2014-7-21 09:44:06 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
原子哥,弱弱的问一个问题:如果没有VBAT供电,BKP还能工作吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2014-7-22 00:05:29 | 显示全部楼层
回复【4楼】小崔:
---------------------------------
不能。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

22

主题

147

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3979
金钱
3979
注册时间
2015-4-18
在线时间
403 小时
发表于 2016-3-26 21:04:17 | 显示全部楼层
研究下。。。。。
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2016-7-15
在线时间
6 小时
发表于 2016-11-21 11:10:18 | 显示全部楼层
路过.......
回复 支持 反对

使用道具 举报

5

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2017-4-11
在线时间
10 小时
发表于 2017-5-2 17:49:21 | 显示全部楼层
能不能把你的程序发一份给我看看
回复 支持 反对

使用道具 举报

79

主题

534

帖子

0

精华

高级会员

Rank: 4

积分
756
金钱
756
注册时间
2014-9-30
在线时间
128 小时
发表于 2017-5-2 19:44:54 | 显示全部楼层
shawnchou 发表于 2017-5-2 17:49
能不能把你的程序发一份给我看看

这,,应该 不难 吧。。确保 BKP 有电池。

定义数组:位于 BKP 的 区域  就得咯 。。

然后:有意外,就直接写 RAM 数组 很简单。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

初级会员

Rank: 2

积分
67
金钱
67
注册时间
2014-11-18
在线时间
5 小时
发表于 2017-10-28 10:50:35 | 显示全部楼层
谢谢,正在研究学习中
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-14
在线时间
2 小时
发表于 2020-4-17 21:22:25 | 显示全部楼层
原子哥,可以把本例程发给我吗
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-14
在线时间
2 小时
发表于 2020-4-17 21:24:00 | 显示全部楼层
原子哥,可以把本例程发给我吗,这里谢谢啦
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2020-2-14
在线时间
2 小时
发表于 2020-4-17 21:28:07 | 显示全部楼层
可以把本例程发给我们,这里谢谢啦
回复 支持 反对

使用道具 举报

3

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2019-4-25
在线时间
30 小时
发表于 2022-7-7 14:10:12 | 显示全部楼层
小范围数据,可以随时保存更新,有例程吗原子哥@
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-25 12:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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