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中断,所以没有多少内容。
注意事项
- 先调用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屏幕