STM32F103VET6基于STM32CubeMX RTC时钟秒更新中断使用示例
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32F103VET6基于STM32CubeMX RTC时钟秒更新中断使用示例相关的知识,希望对你有一定的参考价值。
STM32F103VET6基于STM32CubeMX RTC时钟秒更新中断使用示例
- 📌相关篇《STM32F103VET6基于STM32CubeMX RTC时钟使用示例》
- 📺STM32CubeMX配置演示:
✨本篇不包含时间信息的输出内容部分,如果项输出时间信息,可以参考上一篇内容,只介绍开启RTC中断功能。
- 🌼RTC时钟秒更新中断流程
📝业务代码配置
- 🌿需要使用串口打印时间,在
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;
- 🌿重写RTC秒更新中断回调函数。
void HAL_RTCEx_RTCEventCallback(RTC_HandleTypeDef *hrtc)
//秒更新中断回调函数
HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5);
printf("HAL_RTC_IT_SEC_Callback \\r\\n");
- 🌿在
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屏幕