打印

GD32F407RTC备份寄存器BKP的使用

[复制链接]
851|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
9dome猫|  楼主 | 2022-12-24 14:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在GD官网例程中没有给出GD32F407 BKP的示例代码,在网友提供的代码基础上重新使用了GD官网pmu库文件,按照流程重写了读和写的方法,供大家在使用中参考。。。#include "gd32f4xx_rtc.h"
<div class="blockcode"><blockquote><p></p><div><div>#include "gd32f4xx_pmu.h"</div></div><div></div>
//初始化
void BKPSRAM_int(void)
{
        //BKPSRAM_BASE
        //*(__IO uint16_t *) (BKPSRAM_BASE + offset) = 0               
        //RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);        //启用压水堆时钟
                                rcu_periph_clock_enable(RCU_BKPSRAM);
       // PWR_BackupAccessCmd(ENABLE);                               //能够访问到备份域
                                pmu_backup_ldo_config( PMU_BLDOON_ON);
        //RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM, ENABLE);    //启用备份SRAM时钟
                                pmu_backup_write_enable();
        //PWR_BackupRegulatorCmd(ENABLE);                            //启用备份SRAM的低功耗稳压器,以保持它在VBAT模式的内容
                                pmu_low_driver_mode_enable(PMU_LOWDRIVER_ENABLE);
       // while(PWR_GetFlagStatus(PWR_FLAG_BRR) == RESET) {}         //等到备份SRAM的低                                        功耗稳压器已准备就绪
                                while(pmu_flag_get(PMU_FLAG_BLDORF)==RESET){}

}


使用特权

评论回复
沙发
9dome猫|  楼主 | 2022-12-24 15:00 | 只看该作者
//BKPSRAM数据读取
uint16_t Rd_s16_BKPSRAM(uint16_t add)
{
        uint32_t offset=0;
        offset=(0x07ff&add)*2;
        return *(__IO uint16_t *) (BKPSRAM_BASE + offset);
}

使用特权

评论回复
板凳
9dome猫|  楼主 | 2022-12-24 15:01 | 只看该作者
//BKPSRAM数据写
void Write_s16_BKPSRAM(uint16_t add,uint16_t d)
{
       uint32_t offset=0;
        offset=(0x07ff&add)*2;
        *(__IO uint16_t *) (BKPSRAM_BASE + offset) = d ;
}

使用特权

评论回复
地板
9dome猫|  楼主 | 2022-12-24 15:01 | 只看该作者
//测试:
void main(void){
        uint16_t res;
        BKPSRAM_int();
        res=Rd_s16_BKPSRAM(RTC_BKP0);
        if(res==0x0B)Write_s16_BKPSRAM(RTC_BKP0,0X0A);
        printf("%x\r\n",res);
        res=Rd_s16_BKPSRAM(RTC_BKP0);
        printf("%x\r\n",res);
        Write_s16_BKPSRAM(RTC_BKP0,0X3F);
}

使用特权

评论回复
5
9dome猫|  楼主 | 2022-12-24 15:02 | 只看该作者
在系统重启后,赋值的BKP0值不应该变化,表示配置成功.

使用特权

评论回复
6
lzbf| | 2023-1-5 13:25 | 只看该作者
这个可以有秒中断产生的吗?              

使用特权

评论回复
7
tabmone| | 2023-1-6 16:25 | 只看该作者
如何保存日期到这个寄存器中呢?              

使用特权

评论回复
8
1988020566| | 2023-1-7 17:28 | 只看该作者
感觉备份寄存器BKP用的还是比较少的。

使用特权

评论回复
9
pl202| | 2023-1-9 09:33 | 只看该作者
备份寄存器BKP可以保存多少个字符的?

使用特权

评论回复
10
juliestephen| | 2023-1-9 11:39 | 只看该作者
这个有什么作用呢?              

使用特权

评论回复
11
pmp| | 2023-1-9 12:09 | 只看该作者
RTC有什么数据可以保存呢?              

使用特权

评论回复
12
sdlls| | 2023-1-9 15:38 | 只看该作者
VBAT可以使用多长时间?              

使用特权

评论回复
13
xiaoyaodz| | 2023-1-10 20:59 | 只看该作者
备份寄存器BKP可以保存参数的吗?

使用特权

评论回复
14
bestwell| | 2023-1-11 20:27 | 只看该作者
备份寄存器BKP只能是说明已经授时了。

使用特权

评论回复
15
pentruman| | 2023-1-12 14:05 | 只看该作者
是否可以保存闹钟到这个寄存器里面吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

1406

帖子

2

粉丝