OpenEdv-开源电子网

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

RTC实验为什么重新设置时间无效

[复制链接]

3

主题

9

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-5-9
在线时间
10 小时
发表于 2019-8-16 15:05:31 | 显示全部楼层 |阅读模式
为什么RTC实验更改了时间,stm32上显示的还是实验上的默认时间,还是2015-1-14.

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

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2022-4-12
在线时间
0 小时
发表于 2022-4-25 22:32:25 | 显示全部楼层
if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x5050)                //是否第一次配置?
        {
                RCC_LSEConfig(RCC_LSE_ON);//LSE 开启   
                while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)        //检查指定的RCC标志位设置与否,等待低速晶振就绪
                        {
                        retry++;
                        delay_ms(10);
                        }
                if(retry==0)return 1;                //LSE 开启失败.
                       
                RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);                //设置RTC时钟(RTCCLK),选择LSE作为RTC时钟   
                RCC_RTCCLKCmd(ENABLE);        //使能RTC时钟

    RTC_InitStructure.RTC_AsynchPrediv = 0x7F;//RTC异步分频系数(1~0X7F)
    RTC_InitStructure.RTC_SynchPrediv  = 0xFF;//RTC同步分频系数(0~7FFF)
    RTC_InitStructure.RTC_HourFormat   = RTC_HourFormat_24;//RTC设置为,24小时格式
    RTC_Init(&RTC_InitStructure);

                RTC_Set_Time(21,04,20,RTC_H12_AM);        //设置时间
                RTC_Set_Date(22,4,25,1);                //设置日期
         RTC_WriteBackupRegister(RTC_BKP_DR0,0x5050);        //标记已经初始化过了
               
        }

        return 0;
}


这里有一个if判断
if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x5050)                //是否第一次配置?
把这个改成
if(RTC_ReadBackupRegister(RTC_BKP_DR0)==0x5050)       
就可以了.然后后面时间改完.在改回去。
回复 支持 1 反对 0

使用道具 举报

3

主题

9

帖子

0

精华

新手上路

积分
39
金钱
39
注册时间
2019-5-9
在线时间
10 小时
 楼主| 发表于 2019-8-16 15:53:40 | 显示全部楼层
在程序里面改日期无效,可是用USMART在串口上能改日期。
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
11
金钱
11
注册时间
2019-9-30
在线时间
3 小时
发表于 2019-10-4 09:14:41 | 显示全部楼层
RTC_Set(2015,8,11,10,0,55);  //设置时间的函数,更改了并没有用,好好奇为什么
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

初级会员

Rank: 2

积分
80
金钱
80
注册时间
2019-9-2
在线时间
11 小时
发表于 2019-10-4 16:24:53 | 显示全部楼层
应该是开发板RTC上次初始化,BKP_DR1里的值一直为0x5050,所以你改时间的程序其实不执行,把BKP_DR1中的值改一下,再重新下载一下
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2022-3-4
在线时间
7 小时
发表于 2022-3-16 18:31:28 | 显示全部楼层
改了BKP_DR1的值还是不行哈,老哥后来怎么解决的哈
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手入门

积分
19
金钱
19
注册时间
2022-3-4
在线时间
7 小时
发表于 2022-3-16 18:31:54 | 显示全部楼层
淮南牛肉汤 发表于 2019-10-4 16:24
应该是开发板RTC上次初始化,BKP_DR1里的值一直为0x5050,所以你改时间的程序其实不执行,把BKP_DR1中的值 ...


改了BKP_DR1的值还是不行哈,老哥后来怎么解决的哈
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-28 06:00

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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