STM32H750 的實時時鐘是一個獨立的 BCD 定時器/計數器,且帶了日歷功能,它提供一個日歷時鐘、兩個可編程鬧鐘中斷,以及一個具有中斷功能的周期性可編程喚醒標志。
此外RTC 還有自動喚醒單元,RTC還可以補償閏年閏月等等,還有備份區域(BKP)寫保護,這些這里不細說了。
RTC 的簡化框圖
時鐘和分頻
STM32H750 的 RTC 時鐘源(RTCCLK)通過時鐘控制器,可以從 LSE、LSI、HSE 時鐘三選一,如圖所示,有兩個預分頻器RTC_PRER
ck_spre 的時鐘可由如下計算公式計算:
Fck_spre = Frtcclk/[(PREDIV_S+1)*( PREDIV_A+1)]
圖中,ck_apre 也可作為 RTC 亞秒遞減計數器(RTC_SSR)的時鐘。
Fck_apre的計算公式如下:
Fck_apre=Frtcclk/( PREDIV_A+1)
當 RTC_SSR 寄存器遞減到 0 的時候,會使用 PREDIV_S 的值重新裝載 PREDIV_S,得到亞秒時間的精度是:1/256 秒,可以得到更加精確的時間數據。
STM32CubeIDE 配置
默認情況下是如圖
一般情況下使用LSE,這里我們需要在RCC使能
然后在RTC中使能時鐘源,如果需要日歷鬧鐘功能的可以在這里也使能上。
公式如下:
RTC時鐘頻率 = RTC時鐘源 / ((Asynchronous Predivider value + 1) * (Synchronous Predivider value + 1))= 1Hz,也就是1秒
之后到時鐘配置里面可以看到已經使能了
初始化
static void MX_RTC_Init(void)
{
/* USER CODE BEGIN RTC_Init 0 */
/* USER CODE END RTC_Init 0 */
/* USER CODE BEGIN RTC_Init 1 */
/* USER CODE END RTC_Init 1 */
/** Initialize RTC Only
*/
hrtc.Instance = RTC;
hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
hrtc.Init.AsynchPrediv = 127;
hrtc.Init.SynchPrediv = 255;
hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
hrtc.Init.OutPutRemap = RTC_OUTPUT_REMAP_NONE;
if (HAL_RTC_Init(&hrtc) != HAL_OK)
{
Error_Handler();
}
/* USER CODE BEGIN RTC_Init 2 */
/* USER CODE END RTC_Init 2 */
}
可以看到outline里面有很多我們需要的函數,那么自己擴展就可以使用了
This function configures the hardware resources used in this example
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hrtc->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
/* USER CODE END RTC_MspInit 0 */
/** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
}
/* Peripheral clock enable */
__HAL_RCC_RTC_ENABLE();
/* USER CODE BEGIN RTC_MspInit 1 */
/* USER CODE END RTC_MspInit 1 */
}
}
最后,可以按需定制自己的實現方式,RTC是特別實用的一個模塊了。
-
STM32
+關注
關注
2266文章
10876瀏覽量
354925 -
計數器
+關注
關注
32文章
2254瀏覽量
94371 -
定時器
+關注
關注
23文章
3241瀏覽量
114514
發布評論請先 登錄
相關推薦
評論