1. 程式人生 > >STM32CubeMX學習筆記——STM32H743_RTC

STM32CubeMX學習筆記——STM32H743_RTC

STM32CubeMX學習筆記——STM32H743_RTC


此工程實現功能,使用RTC wakeup定時器每隔1s toggle led引腳一次,在debug模式下可在記憶體中檢視RTC日期、時間

此後的專案均採用STM32CubeMX 5.0.0 版本
5.0.0版本與4.27.0版本UI介面變化很大
新版本向下相容其他版本

Github

https://github.com/HaHaHaHaHaGe/Planof2019_half/tree/master/Course_Project/STM32H7/Class06_RTC

STM32CubeMX配置

STM32CubeMX版本:5.0.0
配置流程:
Pinout & Configuration介面選擇並開啟需要使用外部中斷的引腳,與配置相關外設
Clock Configuration配置時鐘樹
生成工程

Pinout配置

在這裡插入圖片描述
配置LED引腳,RCC、RTC等外設配置

RTC

在這裡插入圖片描述

Mode

開啟時鐘源
啟用日曆功能
鬧鐘A:可選擇關閉/對映到引腳/引發中斷
鬧鐘B:可選擇關閉/對映到引腳/引發中斷
喚醒功能:可選擇關閉/對映到引腳/引發中斷

Configuration

Paramter Settings

General:
24小時制/12小時制
非同步分頻係數
同步分頻係數
在這裡插入圖片描述
在這裡插入圖片描述
Calendar Time
資料格式:二進位制/BCD
設定小時
設定分鐘
設定秒鐘
夏令時模式:關閉/減去1小時/增加1小時
夏令時修改標誌:未修改/已修改
Calender Date
星期


年:(只寫入十位與個位,如2018年 只寫入18)
Wake UP
喚醒週期
喚醒次數

NVIC Settings

在這裡插入圖片描述

Clock Configuration配置

在這裡插入圖片描述

程式碼部分

中斷響應流程:

//stm32h7xx_it.c
void RTC_WKUP_IRQHandler(void)
//stm32h7xx_hal_rtc_ex.c
void HAL_RTCEx_WakeUpTimerIRQHandler(RTC_HandleTypeDef *hrtc)
//stm32h7xx_it.c
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)

stm32h7xx_it.c

/* USER CODE BEGIN 1 */
void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
{
	HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_0);
}
/* USER CODE END 1 */

main.c

/* USER CODE BEGIN 0 */
RTC_DateTypeDef date;
RTC_TimeTypeDef time;
/* USER CODE END 0 */

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		HAL_RTC_GetDate(&hrtc,&date,RTC_FORMAT_BIN);
		HAL_RTC_GetTime(&hrtc,&time,RTC_FORMAT_BIN);
  }
  /* USER CODE END 3 */