蓝桥杯学习笔记十一:RTC配置和使用

Cubmx配置:

蓝桥杯学习笔记十一:RTC配置和使用_第1张图片

然后再参照之前的配置好时钟和串口(不要忘了打开闹钟的中断)。

main.c:

#include "main.h"
#include "rtc.h"
#include "usart.h"
#include "gpio.h"
#include "stdio.h"
#include "string.h"

  RTC_TimeTypeDef sTime;
  RTC_DateTypeDef sDate;
  RTC_AlarmTypeDef sAlarm;

	void HAL_RTC_AlarmAEventCallback (RTC_HandleTypeDef *hrtc)//闹钟回调函数
	{
		char s[20];
		sprintf (s,"ALARM!!!");
		HAL_UART_Transmit (&huart1, (unsigned char*)s,strlen (s), 50);
	}

void SystemClock_Config(void);

int main(void)
{
	char s[30];


  HAL_Init();

 
  SystemClock_Config();

  MX_GPIO_Init();
  MX_RTC_Init();
  MX_USART1_UART_Init();
 
  while (1)
  {	
		HAL_RTC_GetTime (&hrtc, &sTime, RTC_FORMAT_BIN);//特别注意!!!!
		HAL_RTC_GetDate (&hrtc, &sDate, RTC_FORMAT_BIN);//同时获取才可以
		sprintf (s,"%d\r\n",sTime .Seconds );
		HAL_UART_Transmit (&huart1, (unsigned char*)s,strlen (s), 50);
		HAL_Delay (1000);
   
  }
 
}

特别是注意在获取时间时,一定要用RTC_FORMAT_BIN格式获取,否则出现秒钟跳变的现象(不知什么原因)。

串口调试助手显示:

蓝桥杯学习笔记十一:RTC配置和使用_第2张图片

视频教程STM32G4蓝桥杯嵌入式学习日记二十一、简单RTC配置_哔哩哔哩_bilibili

你可能感兴趣的:(蓝桥杯,单片机,stm32)