OpenEdv-开源电子网

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

探索者RTC时间设置问题,函数RTC_Set_Time()的变量设置报错

[复制链接]

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2021-10-5
在线时间
6 小时
发表于 2021-12-31 10:46:53 | 显示全部楼层 |阅读模式
探索者开发板RTC实验,试图把时间设置为当前时间,发现下面一段代码中的RTC_Set_Time()函数内部参数如时,分,秒部分数值设入报错,例如小时、分钟变量都不能设为08,但是设为10又都可以,修改12、24小时制变量也不能解决问题,修改RTC_ReadBackupRegister(RTC_BKP_DR0)的值同样不行。哪位高手帮看看是不是ST官方库函数版本问题?



u8 My_RTC_Init(void)
{
        RTC_InitTypeDef RTC_InitStructure;
        u16 retry=0X1FFF;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);//ê1ÄüPWRê±Öó
        PWR_BackupAccessCmd(ENABLE);        //ê1Äüo󱸼Ä′æÆ÷·ÃÎê
       
        if(RTC_ReadBackupRegister(RTC_BKP_DR0)!=0x53)                //êÇ·ñμúò»′ÎÅäÖÃ?
        {
                RCC_LSEConfig(RCC_LSE_ON);//LSE ¿aÆô   
                while (RCC_GetFlagStatus(RCC_FLAG_LSERDY) == RESET)        //¼ì2éÖ¸¶¨μÄRCC±ê־λéèÖÃóë·ñ,μè′yμíËù¾§Õñ¾íD÷
                        {
                        retry++;
                        delay_ms(10);
                        }
                if(retry==0)return 1;                //LSE ¿aÆôê§°ü.
                       
                RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);                //éèÖÃRTCê±Öó(RTCCLK),Ñ¡ÔñLSE×÷ÎaRTCê±Öó   
                RCC_RTCCLKCmd(ENABLE);        //ê1ÄüRTCê±Öó

    RTC_InitStructure.RTC_AsynchPrediv = 0x7F;//RTCòì2½·ÖÆμÏμêy(1~0X7F)
    RTC_InitStructure.RTC_SynchPrediv  = 0xFF;//RTCí¬2½·ÖÆμÏμêy(0~7FFF)
    RTC_InitStructure.RTC_HourFormat   = RTC_HourFormat_24;//RTCéèÖÃÎa,24D¡ê±¸ñê½
    RTC_Init(&RTC_InitStructure);

                RTC_Set_Time(09,13,56,RTC_H12_AM);        //éèÖÃê±¼ä
                RTC_Set_Date(21,12,31,5);                //éèÖÃèÕÆú
         
                RTC_WriteBackupRegister(RTC_BKP_DR0,0x53);        //±ê¼ÇòѾ-3õê¼»ˉ1yáË
        }

        return 0;
}



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

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2021-10-5
在线时间
6 小时
 楼主| 发表于 2022-1-1 18:00:03 | 显示全部楼层
没有人回复,自己顶一下。
回复 支持 反对

使用道具 举报

15

主题

1061

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
3624
金钱
3624
注册时间
2019-8-14
在线时间
1054 小时
发表于 2022-1-2 13:00:41 | 显示全部楼层
函数不支持你说的格式写入,你可以自己改一下显示函数,让个位数的值可以在前面填充一个0
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2021-10-5
在线时间
6 小时
 楼主| 发表于 2022-1-3 15:25:08 | 显示全部楼层
问题没有得到解决,不是显示函数的问题,而是RTC_Set_Time()函数的问题,或者它的内部函数问题,因为还没有到显示段代码,设置09,08等值就报错。如下图显示错误


回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2021-10-5
在线时间
6 小时
 楼主| 发表于 2022-1-3 15:30:28 | 显示全部楼层
问题没有得到解决,不是显示函数的问题,而是RTC_Set_Time()函数的问题,或者它的内部函数问题,因为还没有到显示段代码,设置09,08等值就报错。如下图显示错误

RTC_Set_Time()函数报错

RTC_Set_Time()函数报错
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2021-10-31
在线时间
8 小时
发表于 2022-8-3 12:05:01 | 显示全部楼层
呃呃呃呃呃哪有这样输入的??
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-8 00:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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