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

Posted perseverance52

tags:

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

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


  • 📌相关篇《STM32F103VET6基于STM32CubeMX RTC时钟使用示例》
  • 📺STM32CubeMX配置演示:

✨本篇不包含时间信息的输出内容部分,如果项输出时间信息,可以参考上一篇内容,只介绍开启RTC中断功能。

  • 🌼RTC时钟秒更新中断流程

📝业务代码配置

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

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

  1. 🌿重写RTC秒更新中断回调函数。
void HAL_RTCEx_RTCEventCallback(RTC_HandleTypeDef *hrtc)
//秒更新中断回调函数
	
		HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
    printf("HAL_RTC_IT_SEC_Callback \\r\\n");

  1. 🌿在main主函数中,使能秒更新中断函数。
	__HAL_RTC_SECOND_ENABLE_IT(&hrtc,RTC_IT_SEC);//开启秒更新中断
  • 📋main.c
int main(void)

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_RTC_Init();
  MX_USART1_UART_Init();
  /* USER CODE BEGIN 2 */
	__HAL_RTC_SECOND_ENABLE_IT(&hrtc,RTC_IT_SEC);//开启秒更新中断
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  
  /* USER CODE END 3 */

  • 📜串口打印信息

📚程序源码

链接:https://pan.baidu.com/s/1DcJmrQFDPjZboqnaxyYmGg 
提取码:8kh4

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

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

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

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

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

STM32F103VET6基于STM32CubeMX RTC时钟使用示例

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