日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]Ⅰ、概述RTC(Real Time Clock)是實時時鐘的意思,它其實和TIM有點類似,也是利用計數(shù)的原理,選擇RTC時鐘源,再進行分頻,到達計數(shù)的目的。該文主要講述關于RTC的秒中斷功能,這個功能類似SysTick系統(tǒng)滴答的功能。

Ⅰ、概述

RTC(Real Time Clock)是實時時鐘的意思,它其實和TIM有點類似,也是利用計數(shù)的原理,選擇RTC時鐘源,再進行分頻,到達計數(shù)的目的。

該文主要講述關于RTC的秒中斷功能,這個功能類似SysTick系統(tǒng)滴答的功能。RTC秒中斷功能其實是每計數(shù)一次就中斷一次。注意,這里所說的秒中斷并非一定是一秒的時間,它是由RTC時鐘源和分頻值決定的“秒”的時間,當然也是可以做到1秒鐘中斷一次。

本文章提供的實例工程,其實驗效果是:

主函數(shù)間隔0.5秒LED變化一次;

秒中斷一次打印數(shù)據(jù)"RTC Sec...";

也就是LED變化一次,串口打印一次數(shù)據(jù)"RTC Sec..."

擴展部分的功能RTC計數(shù):可以實現(xiàn)RTC鬧鐘,本文將提供實例工程源代碼供大家下載學習。

關于本文的更多詳情請往下看。

Ⅱ、實例工程下載

筆者針對于初學者提供的例程都是去掉了許多不必要的功能,精簡了官方的代碼,對初學者一看就明白,以簡單明了的工程供大家學習。

筆者提供的實例工程都是在板子上經(jīng)過多次測試并沒有問題才上傳至360云盤,歡迎下載測試、參照學習。

提供下載的軟件工程是STM32F103ZE的,但F1其他型號也適用(適用F1其他型號: 關注微信,回復“修改型號”)。

STM32F10x_RTC鬧鐘實例源代碼工程:

https://yunpan.cn/cBbpu3gIGK38a 訪問密碼 05da

STM32F10x_RTC秒中斷實例源代碼工程:

https://yunpan.cn/cBbpPnhYbXR9x訪問密碼 561f

STM32F1資料:

https://yunpan.cn/crBUdUGdYKam2 訪問密碼 ca90

Ⅲ、原理描述

以筆者個人學習經(jīng)歷來說,想要掌握其真正原理,最好還是查看參考手冊(現(xiàn)在有很多都翻譯為中文了),里面模塊的框圖,從框圖中大概就可以看到該模塊有些什么功能及其工作的原理。

RTC框圖:

從上面系統(tǒng)框圖來分析“RTC秒中斷”的原理:

1、RTC時鐘源,總共有三類:

RCC_RTCCLKSource_LSE

RCC_RTCCLKSource_LSI

RCC_RTCCLKSource_HSE_Div128

本文實例代碼是:RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);

使用“RCC_RTCCLKSource_HSE_Div128”作為時鐘源(高速時鐘源),也就是外部高速時鐘的128分頻,也就是每秒8M/128(62500)個脈沖;

當然,我們也可以選擇另外兩個時鐘源,也就是使用低速時鐘源,一般應用在RTC鬧鐘可RTC日歷等都使用低速時鐘源。

2、RTC分頻:

本文實例代碼是:RTC_SetPrescaler(62500);

這個值是和上面對應的,因為我們這里是實現(xiàn)真正的1秒鐘中斷一次。

3、RTC中斷:

RTC中斷有三種:

RTC_IT_SEC秒中斷

RTC_IT_ALR鬧鐘中斷

RTC_IT_OW(計數(shù))溢出中斷

本文實例是:RTC_ITConfig(RTC_IT_SEC, ENABLE);

使能RTC_IT_SEC秒中斷。

再次強調(diào):

這里的“秒中斷”是概念上的秒中斷,它的中斷間隔時間是根據(jù)你選擇的時鐘源和分頻值決定的,并非真正的1秒鐘中斷一次。

我們可以試著將源代碼中的分頻值該62500的一半31250,可以看得出來,秒中斷的間隔時間為0.5秒(請自行修改實驗測試)。

Ⅳ、源代碼分析

筆者以F1標準外設庫(同時也建議初學者使用官方的標準外設庫)為基礎建立的工程,主要以庫的方式來講述(若您的F1芯片與提供工程不一樣,可微信回復“修改型號”)。

下面將講述關于“RTC秒中斷”重要的、容易弄錯的幾點:

1.RCC時鐘源

該函數(shù)位于bsp.c文件下面;

RCC是很多初學者,甚至已經(jīng)工作的朋友容易遺漏的地方,有很多朋友覺得它使用的外設不正常,很大部分是沒有配置RCC導致的。

重點注意:

A.外設RCC時鐘的配置要在其外設初始化的前面;

B.匹配對應時鐘。

比如:RCC_APB2外設不要配置在RCC_APB1時鐘里面

【如:RCC_APB1PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);這樣能編譯通過,但這是錯誤的代碼】

2. RTC秒中斷配置

該函數(shù)位于rtc.c文件下面;

該函數(shù)請結合參考手冊(框圖和寄存器)理解。

注意4點:

A.使能后備區(qū)域:PWR_BackupAccessCmd(ENABLE);

從系統(tǒng)框圖可以看見RTC有陰影部分,其實這部分就是后備區(qū)域。因此,需要使能,這也是為什么上面需要配置RCC時鐘的原因。

B.選擇RTC時鐘源:RCC_RTCCLKConfig(RCC_RTCCLKSource_HSE_Div128);

在原理描述中說了,RTC時鐘源有三種:

RCC_RTCCLKSource_LSE

RCC_RTCCLKSource_LSI

RCC_RTCCLKSource_HSE_Div128

可以在源代碼中查看其參數(shù),也是有3中可以選擇。

C.使能RTC鬧鐘中斷:RTC_ITConfig(RTC_IT_SEC, ENABLE);

RTC有三類中斷:

RTC_IT_SEC秒中斷

RTC_IT_ALR鬧鐘中斷

RTC_IT_OW(計數(shù))溢出中斷

我提供的拓展功能“RTC鬧鐘”就是使用鬧鐘中斷,可以下載實例工程查看源代碼。

D.RTC分頻:RTC_SetPrescaler(62500);

我們是為了得到真正的1秒鐘中斷一次,所以這里的值是62500 = 8M/128,這樣才能剛好1秒中斷一次。

3. NVIC配置

該函數(shù)位于bsp.c文件下面;

我們要中斷,就需要配置NVIC(中斷控制器),為其分配優(yōu)先級。

很多人覺得自己的配置沒問題,但程序就是不進入中斷,原因可能就在這里。因此,NVIC這里也是容易忽略的地方。

4. RTC中斷

該函數(shù)位于stm32f10x_it.c文件下面;

這里需要注意,RTC有三類中斷,但入口都是這個函數(shù),因此,需要在函數(shù)體里面分辨是哪一個中斷進入了該函數(shù)。

注意1點:

清除中斷標志位:RTC_ClearITPendingBit(RTC_IT_SEC);

有的中斷標志位清除方法可能有幾種方法,比如USART接收中斷,只要讀取接收值就可以清除(請看USART1_IRQHandler函數(shù))

可能有人覺得自己的程序老是字在中斷函數(shù)里面,原因可能就在于沒有清除中斷標志位。

Ⅴ、說明

這篇文章是結合前幾篇文章來講述的,可以在微信“歷史消息”中查看。

關于筆者提供的軟件工程實例,可關注微信,在會話框回復“關于工程”,有關于工程結構描述、型號修改等講述。

以上總結僅供參考,若有不對之處,敬請諒解。


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

  2016年2月26日,德國慕尼黑和西班牙巴塞羅那訊——贏得消費者的信任對于智能移動設備支付解決方案至關重要。作為全球最大的安全芯片供應商之一,英飛凌科技股份公司(FS

關鍵字: rtc 機器人 rx8010sj

博主使用的是天嵌的開發(fā)板型號IMX6Q_coreC。1.發(fā)現(xiàn)使用開發(fā)板是時間總是被設置為2028年6月18日3時41分,一開始以為是底層驅(qū)動的問題, 故去底層加打印信息調(diào)試。2.發(fā)現(xiàn)在系統(tǒng)內(nèi)hwclo

關鍵字: Linux rtc

比較F1的片子對于F4的RTC來說有很大提升,F(xiàn)4的RTC提供了日歷時鐘和兩個可編程鬧鐘中斷,一個周期性可編程喚醒標志。這樣很方便設置系統(tǒng)時間,并不會像F1的RTC那樣要自己計算年月日時分秒。F4的RTC是一個獨立的BC...

關鍵字: rtc stm32f4

  RTC-Real Time Clock是430單片機的實時時鐘模塊,可以配置成實時時鐘模式(萬年歷)或者一般目的的32位計數(shù)器模式,其中實時時鐘模式提供了年月日、時分秒,可以選擇BCD碼或者二進制格式,并且具有可編程...

關鍵字: MSP430 rtc 單片機 實時時鐘

STM32RTC使用步驟:打開PWR時鐘和Backup區(qū)數(shù)據(jù)訪問若使用外部低速時鐘(LSE),打開LSE并等待起振選擇和打開RTC時鐘,等待時鐘同步配置時間格式,分頻系數(shù)等根據(jù)需要配置時鐘,日期,鬧鐘,喚醒,輸出,時間戳...

關鍵字: rtc stm32f3 實時時鐘

一、在STM32中,有5個時鐘源,為HSI,HSE,LSI,LSE,PLL.①HSI是高速內(nèi)部時鐘,RC振蕩器,頻率為8MHz;②HSE--高速外部時鐘,可接石英或者陶瓷諧振器,或者外部時鐘源,頻率范圍4MHz--15M...

關鍵字: STM32 stm32f10x 時鐘配置

;******************** (C) COPYRIGHT 2010 STMicroelectronics ********************;* File Name: startup_stm32f10...

關鍵字: stm32f10x 啟動代碼

1.與RTC有關的IO口:PC13(TAMPER-RTC)不能設置成GPIO_Mode_AN狀態(tài),否則進不了RTC中斷。(可以設置成GPIO_Mode_IN)。2.需要在設置RTC時鐘之前 RTC_WakeUpCmd(D...

關鍵字: rtc stm32l151

1 RTC結構特點 實時時鐘的基本功能是保持跟蹤時間和日期等信息,但許多RTC還提供有多種附加功能,如:看門狗定時器、系統(tǒng)復位、非易失存儲器(NVRAM)、序列號、方波輸出

關鍵字: rtc 電源技術解析

環(huán)境:STM32F10x 3.5固件庫。下載地址http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32f10x_stdp...

關鍵字: stm32f10x 新建工程
關閉