1.簡介
實時時鐘是一個獨立的定時器。 RTC模塊擁有一組連續(xù)計數(shù)的計數(shù)器,在相應(yīng)軟件配置下,可提供時鐘日歷的功能。修改計數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的時間和日期。
2.特性
?● 可編程的預(yù)分頻系數(shù):分頻系數(shù)最高為220。
?● 32位的可編程計數(shù)器,可用于較長時間段的測量。
?● 2個分離的時鐘:用于APB1接口的PCLK1和RTC時鐘(RTC時鐘的頻率必須小于PCLK1時鐘頻率的四分之一以上)。
?● 可以選擇以下三種RTC的時鐘源:
─ HSE時鐘除以128;
─ LSE振蕩器時鐘;
─ LSI振蕩器時鐘
?● 3個專門的可屏蔽中斷:
─ 鬧鐘中斷,用來產(chǎn)生一個軟件可編程的鬧鐘中斷。
─ 秒中斷,用來產(chǎn)生一個可編程的周期性中斷信號(最長可達(dá)1秒)。
─ 溢出中斷,指示內(nèi)部可編程計數(shù)器溢出并回轉(zhuǎn)為0的狀態(tài)。
3.軟件設(shè)計
?3.1 選擇RTC時鐘源
3.2 RTC配置
3.3 配置RTC時鐘源
4.生成代碼
?4.1 RTC初始化
在有后備電池供電情況下,為了保證掉電后電子鐘數(shù)據(jù)持續(xù)更新,我們需要開啟后備驅(qū)動。
/*檢查后備區(qū)域是否寫入數(shù)據(jù)*/
if(HAL_RTCEx_BKUPRead(&hrtc,RTC_BKP_DR1)==0x12)
{
return ;
}
else HAL_RTCEx_BKUPWrite(&hrtc,RTC_BKP_DR1,0x12);//寫入標(biāo)志位,表示RTC時間配置好,防止重置時間
4.2 開時鐘,開RTC中斷
4.3 RTC中斷
void RTC_IRQHandler(void)
{
/* USER CODE BEGIN RTC_IRQn 0 */
RTC_TimeTypeDef sTime = {0};
RTC_DateTypeDef DateToUpdate = {0};
/* USER CODE END RTC_IRQn 0 */
HAL_RTCEx_RTCIRQHandler(&hrtc);
/* USER CODE BEGIN RTC_IRQn 1 */
if(HAL_RTC_GetTime(&hrtc,&sTime,RTC_FORMAT_BIN)==HAL_OK)
{
printf('%d:%d:%d ',sTime.Hours,sTime.Minutes,sTime.Seconds);
}
if(HAL_RTC_GetDate(&hrtc,&DateToUpdate,RTC_FORMAT_BIN)==HAL_OK)
{
printf('%d/%d/%d 星期:%drn',DateToUpdate.Year,DateToUpdate.Month,DateToUpdate.Date,DateToUpdate.WeekDay);
}
/* USER CODE END RTC_IRQn 1 */
}
4.4 時間顯示和校準(zhǔn)
if(usart1_flag)
{
printf('%srn',usart1_buff_rx);
if(usart1_buff_rx[0]== '*')
{
DateToUpdate.Year=(usart1_buff_rx[3]-'0')*10+(usart1_buff_rx[4]-'0')*1;//年
DateToUpdate.Month=(usart1_buff_rx[5]-'0')*10+(usart1_buff_rx[6]-'0')*1;//月
DateToUpdate.Date=(usart1_buff_rx[7]-'0')*10+(usart1_buff_rx[8]-'0')*1;//日
sTime.Hours=(usart1_buff_rx[9]-'0')*10+(usart1_buff_rx[10]-'0')*1;
sTime.Minutes=(usart1_buff_rx[11]-'0')*10+(usart1_buff_rx[12]-'0')*1;
sTime.Seconds=(usart1_buff_rx[13]-'0')*10+(usart1_buff_rx[14]-'0')*1;
printf('%d/%d/%d -- %d:%d:%drn',DateToUpdate.Year,DateToUpdate.Month,DateToUpdate.Date,sTime.Hours,sTime.Minutes,sTime.Seconds);
HAL_RTC_SetDate(&hrtc, &DateToUpdate,RTC_FORMAT_BIN);
HAL_RTC_SetTime(&hrtc,&sTime,RTC_FORMAT_BIN);
}
usart1_flag=0;
usart1_count=0;
}
上一篇:STM32之LWIP網(wǎng)絡(luò)協(xié)議棧移植步驟與方案
下一篇:stm32外部時鐘模式1和模式2區(qū)別
推薦閱讀最新更新時間:2025-06-15 05:29






設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領(lǐng)先的新器件
- 意法半導(dǎo)體STM32MP23x:突破成本限制的工業(yè)AI應(yīng)用核心
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- LTC4358 的典型應(yīng)用 - 5A 理想二極管
- EVAL-AD7091RSDZ,AD7091R 模數(shù)轉(zhuǎn)換器評估板
- TB67S102AFTG 2 相雙極步進(jìn)電機(jī)驅(qū)動器評估板
- 建筑施工監(jiān)測與安防系統(tǒng)
- 帶RGB的最簡可編程直列鍵盤,適合小白制作【Pro Micro】
- AM1G-1224DH30Z ±24V 1 瓦 DC-DC 轉(zhuǎn)換器的典型應(yīng)用
- zyl_智能小車_12v
- 51單片機(jī)計時器
- 3D打印機(jī) 電源分線器
- DK-DSP-3C120NES,Cyclone III開發(fā)板提供硬件平臺
- 一汽5億元成立科技子公司 加速布局AI與機(jī)器人領(lǐng)域
- 海爾周云杰:未來可能布局人形機(jī)器人,會與宇樹科技探討合作
- 豐田推出全新動力系統(tǒng)Land Cruiser Hybrid 48V
- 500Wh/kg!鋰電巨頭60Ah硫化物全固態(tài)電池即將批量交付!
- AI重構(gòu)汽車大腦,得一微存力芯片賦能“移動智能體”
- 激光雷達(dá),打開新“門”
- 博世發(fā)布全球首款內(nèi)置藍(lán)牙接口的MEMS胎壓監(jiān)測傳感器
- 自動駕駛汽車接管邏輯如何設(shè)置更為合理?
- 車載網(wǎng)絡(luò)技術(shù)詳解 —— 車載網(wǎng)絡(luò)系統(tǒng)基礎(chǔ)
- 創(chuàng)新引領(lǐng)未來,是德科技年度技術(shù)盛會在上海圓滿舉行
- 小米剎車后 百度稱正在評估CDR時機(jī)與可能
- 李自學(xué)或任中興董事長,兆易創(chuàng)新發(fā)2018年股票期權(quán)激勵計劃
- 從國產(chǎn)手機(jī)大航海時代,看聯(lián)發(fā)科兩大殺手锏如何順勢進(jìn)擊
- 2017全球12大智能機(jī)廠商:9家中國公司上榜,占全球總份額42%
- 華為P20系列的成功背后,多鏡頭成為未來智能手機(jī)發(fā)展的縮影
- 深度合作四大創(chuàng)新前沿領(lǐng)域,英特爾與中國移動簽署戰(zhàn)略合
- AI,IoT的到來,讓人臉識別邁向輝煌時刻
- 物聯(lián)網(wǎng)時代,藍(lán)牙Beacon將無處不在
- 200億資金到賬,LG Display廣州OLED生產(chǎn)線整裝待發(fā)
- 打造5G時代高速網(wǎng)絡(luò)體驗,聯(lián)發(fā)科5G多模整合基帶芯片Helio M70