您现在的位置: 爱51代码网 >> 范文 >> 文章正文
BKP_DR寄存器中的值RESET之后就不见了

尝试着使用了下STM32的BKP数据寄存器,试着RESET后仍旧保持之前的RTC,但是遇到了问题,BKP_DR寄存器中的值RESET之后就不见了。(试过BKP_DR34这个貌似直接写不进去,BKP_DR3可以写进去,写完后读出来也对,但RESET之后就没有了)
请教下为什么?应该怎么做能让BKP_DR在RESET后依旧有值。

 
int main()
{
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_BKP, ENABLE);
 
       RCC_RTC_Configuration();
...
}
void RCC_RTC_Configuration()
{
    volatile uint16_t val = 0, val1 = 0;
 
    PWR_BackupAccessCmd(ENABLE);
    BKP_ClearFlag();
    BKP_DeInit();
 
    RCC_LSEConfig(RCC_LSE_ON);
    while(RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET);
    RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);
    RCC_RTCCLKCmd(ENABLE);
 
    val = BKP_ReadBackupRegister(BKP_DR3);    //这里复位后每次读的值都为0x0000
    if(val == 0x3434) {        //BackUp register Set
//        PWR_BackupAccessCmd(DISABLE);
        RCC_ClearFlag();
    }
    else {        //BackUp register Unset
//        BKP_DeInit();
        RTC_WaitForLastTask();
        RTC_EnterConfigMode();
        RTC_SetPrescaler(0x7FFF);
        RTC_WaitForLastTask();
        RTC_ITConfig(RTC_IT_ALR | RTC_IT_SEC, ENABLE);
        RTC_ExitConfigMode();
        RTC_WaitForLastTask();
 
        BKP_WriteBackupRegister(BKP_DR3, (uint16_t)0x3434);   //这里改为BKP_DR34后下面读出来的val1为0x0000
        val1 = BKP_ReadBackupRegister(BKP_DR3);
        val1 = BKP_ReadBackupRegister(BKP_DR3);
//        PWR_BackupAccessCmd(DISABLE);
        RCC_ClearFlag();
    }
    
}

请检查纽扣电池供电是否正常。
用的核心板,直接用5V供电的,貌似没接VBAT,好吧...我试试接一个。
另外BKP_DR34写不进去是为什么呢?
小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和
STM32F103xx微控制器。
中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和
STM32F103xx微控制器。
大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控
制器。
互联型产品是指STM32F105xx和STM32F107xx微控制器。

BKP特性
● 20字节数据后备寄存器(中容量和小容量产品),或84字节数据后备寄存器(大容量和互联型
产品) 

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    SharePoint 2013 Search REST AP
    SharePoint如何搜索指定的爬网内
    weblogic Servlet: "action" fai
    webdav 与exchange通信失败未找到
    SharePoint2013文档库可以直接存
    Unable to write data to the tr
    asp.net中listbox的items.count属
    C#不是每次查询数据是不是被缓存
    ASP.NET发布后能加载引用的js文件
    Hadoop2.2.0在eclipse控制台没有
    arm板自启动运行应用程序时为
    RX8025T日和秒都读成32
    tornado 2.2 PPC 加入-mlong
    8 error C2664: “sscanf”:
    如何在windows上检测耳机的热
    串口接收用DMA总线空闲是开始
    K9k8G08U0A 裸机驱动复位不正
    VS2013+WDK8.1如何配置
    W5300 UDP 接收不到数据
    找不到mach/gpio.h
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |