STM32F103VET6基于STM32CubeMX RTC时钟使用示例

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103VET6基于STM32CubeMX RTC时钟使用示例相关的知识,希望对你有一定的参考价值。

STM32F103VET6基于STM32CubeMX RTC时钟使用示例


  • 📺STM32CubeMX配置过程:

  • 更正:在配置具体时间类型时,需要选择Decimal,否则需要在生成代码后,需要在rtc.c文件中,对应位置加上0x前缀。

不然打印的时间不对。

🛠业务代码补充

  • 🌿需要使用串口打印时间,在usart.c文件中,配置串口printf重映射,并在魔术棒设置选项中,勾选Use Micro LIB
/* USER CODE BEGIN 1 */
#include "stdio.h"
/*可调用printf*/
int fputc(int ch,FILE *f)

    /*&huart1指的是串口1,如果用别的串口就修改数字*/
    HAL_UART_Transmit(&huart1 , (uint8_t *)&ch , 1 , 0xffff);
    return ch;


/* USER CODE END 1 */
  • 🌿在main.c文件中创建获取时间的函数
/* USER CODE BEGIN 0 */
#include "stdio.h"
static void Get_time(void)

	RTC_DateTypeDef RtcDate;
  RTC_TimeTypeDef RtcTime;
  
		 /* Get the RTC current Time */
		HAL_RTC_GetTime(&hrtc, &RtcTime,  RTC_FORMAT_BIN);//先读出时间值
     /* Get the RTC current Date */
		HAL_RTC_GetDate(&hrtc, &RtcDate,  RTC_FORMAT_BIN);//读日期
          
    printf(" 实时时间:%04d-%02d-%02d  %02d:%02d:%02d \\t %d \\r\\n",2000+RtcDate.Year,
       		   RtcDate.Month, RtcDate.Date,RtcTime.Hours, RtcTime.Minutes, RtcTime.Seconds,RtcDate.WeekDay);//显示日期时间
 
  • 🌿在main主函数中的while循环中添加:
	HAL_Delay(1000);
	 Get_time();
  • 串口打印

因为没有使用RTC中断,所以没有多少内容。

注意事项

  1. 先调用GetTime,再调用GetDate。

📚程序源码

链接:https://pan.baidu.com/s/1E4anUWYRIoQ42bXeNvCKog 
提取码:62y9

以上是关于STM32F103VET6基于STM32CubeMX RTC时钟使用示例的主要内容,如果未能解决你的问题,请参考以下文章

STM32F103VET6基于STM32CubeMX创建EXTI外部中断工程

STM32F103VET6基于STM32CubeMX RTC时钟秒更新中断使用示例

STM32F103VET6基于STM32CubeMX 配置非DMA方式获取内部温度

STM32F103VET6基于STM32CubeMX 配置硬件I2C驱动ssd1306 OLED屏幕

STM32F103VET6基于STM32CubeMX RTC时钟使用示例

STM32F103VET6基于STM32CubeMX 配置DMA方式获取内部温度