重返STM32之---RTC使用
由于整個(gè)RTC都是位于后備區(qū),而且RTC的APB1總線和內(nèi)核的APB1總線是獨(dú)立的,所以在系統(tǒng)復(fù)位和喚醒時(shí),RTC和BKP的那些時(shí)鐘不用從新配置;他們只受Backup domain software reset這個(gè)位和系統(tǒng)完全掉電的影響。所以呢;RTC只要有備用電池,它可以完全獨(dú)立工作。
如圖一和圖二所示 ![]() |
![]() |
大家要清楚f10x系列的RTC算不上一個(gè)真正意義上的RTC,它只是一個(gè)計(jì)數(shù)器,精度上難免差強(qiáng)人意,所以設(shè)計(jì)要注意是否滿足計(jì)時(shí)要求。
如果是要實(shí)現(xiàn)實(shí)時(shí)時(shí)間以上所有的寄存器都要有相應(yīng)設(shè)置,如果只用秒中斷,那么只需要設(shè)置RCC和RTC的寄存器就可以了。
以下以實(shí)現(xiàn)實(shí)時(shí)時(shí)鐘為例講解初始化過(guò)程。
- 檢測(cè)后備區(qū)是否已有有效標(biāo)記
- 庫(kù)函數(shù)
- 開啟電源管理和備份區(qū)時(shí)鐘
(RCC->APB1ENR |=1<<27;//BACKUP);
- 庫(kù)函數(shù)
- 取消備份去寫保護(hù)
- 庫(kù)函數(shù)
- 復(fù)位后備區(qū)所有寄存器
RCC->BDCR &=~(1<<16);
- 庫(kù)函數(shù)
- 開啟外部32k晶振
- 庫(kù)函數(shù)
- 32k晶振是否正常工作
- 庫(kù)函數(shù)
- 選擇32k為RTC時(shí)鐘并使能RTC
- 庫(kù)函數(shù)
- 等待RTC操作和同步完成
- 庫(kù)函數(shù)
- 使能秒中斷
- 庫(kù)函數(shù)
- ;
- 配置RTC
- 允許配置
- 庫(kù)函數(shù)
- 如果時(shí)鐘已被設(shè)置過(guò)(RTC沒(méi)有斷電)
- 等待同步
- 開中斷
- 等待操作完成
- 庫(kù)函數(shù)
最后配置RTC中斷優(yōu)先級(jí)。
評(píng)論