解决STMF103使用HAL库驱动RTC重复打印同一个值的问题

目录

一、cudemx配置

1,时钟配置

2,RTC配置

3,开启RCT全局中断

二、软件部分

三、问题分析与解决方法


一、cudemx配置

1,时钟配置

2,RTC配置

3,开启RCT全局中断

二、软件部分

在mian.c中添加如下代码

  while (1)
  {

		HAL_RTC_GetTime(&hrtc,&my_time,RTC_FORMAT_BIN);
		HAL_RTC_GetDate(&hrtc,&my_data,RTC_FORMAT_BIN);
		printf("%d.%d.%d",my_data.Year+2000,my_data.Month,my_data.Date);
		printf(" %d-%d-%d\r\n",my_time.Hours,my_time.Minutes,my_time.Seconds);
		Delay_ms(1000);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 *		
		
  }

将时间打印到串口方便观察,需要注意的是获取时间和获取日期必须一起使用,而且是先获取时间再获取日期

得到结果如下

三、问题分析与解决方法

好好好,获取的时间是设置的时间,但是时间没有变化,放心,我会出手,上网查了基本都是说获取时间和获取日期顺序的问题,显然我们的代码顺序没有问题,通过串口信息也能看出问题,程序一直打印,但是打印的是同一个值,那么我推测是RTC时钟出现了问题,那么打开cudemx修改RTC时钟源

修改时钟源为40khz(标准是32.768khz),其他不需要改变,生成代码后重新下载程序,观察到串口信息如下

到此问题解决,时间设置正常,综上可知,可能是焊接晶振的时候出现虚焊或者晶振本身出现了问题

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值