娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月11日(星期三)

2021年06月11日 | STM32筆記(五)RTC的初始化

發布者:水手谷水手 來源: eefocus關鍵字:STM32  RTC  初始化 手機看文章 掃描二維碼
隨時隨地手機看文章

RTC這東西暈暈的,因為一個模塊涉及到了RTC,BKP,RCC多個模塊,之間的關系讓人有點模糊

入門的知識請大家看手冊,我來總結:

總之,RTC只是個能靠電池維持運行的32位定時器over!

所以,使用時要注意以下問題:

1.上電后要檢查備份電池有沒有斷過電。如何檢查?恩,RTC的示例代碼中已經明示:

往備份域寄存器中寫一個特殊的字符,備份域寄存器是和RTC一起在斷電下能保存數據的。

上電后檢查下這個特殊字符是否還存在,如果存在,ok,RTC的數據應該也沒丟,不需要重新配置它

如果那個特殊字符丟了,那RTC的定時器數據一定也丟了,那我們要重新來配置RTC了

這個過程包括時鐘使能、RTC時鐘源切換、設置分頻系數等等,這個可以參考FWLibexampleRTCCalendar的代碼

在我的這個實例里,檢查備份域掉電在Init.c的RTC_Conig()中,函數內若檢測到BKP掉電,則會調用RTC_Configuration()


2.因為RTC的一些設置是保存在后備域中的,so,操作RTC的設置寄存器前,要打開后備域模塊中的寫保護功能。

3.RTC設定值寫入前后都要檢查命令有沒有完成,調用RTC_WaitForLastTask();


http://space.ednchina.com/upload/2008/12/16/58b75674-8ec0-47f9-b6e5-d2bd3911c5d8.rar具體的RTC初始化代碼如下:

////////////////////////////////////////////////////////////////////////////////

//RTC時鐘初始化!

////////////////////////////////////////////////////////////////////////////////

/*******************************************************************************

*FunctionName:RTC_Configuration

*Description:來重新配置RTC和BKP,僅在檢測到后備寄存器數據丟失時使用

*Input:None

*Output:None

*Return:None

*******************************************************************************/

voidRTC_Configuration(void)

//啟用PWR和BKP的時鐘(fromAPB1)

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,ENABLE);


//后備域解鎖

PWR_BackupAccessCmd(ENABLE);


//備份寄存器模塊復位

BKP_DeInit();


//外部32.768K其喲偶那個

RCC_LSEConfig(RCC_LSE_ON);

//等待穩定

while(RCC_GetFlagStatus(RCC_FLAG_LSERDY)==RESET);


//RTC時鐘源配置成LSE(外部32.768K)

RCC_RTCCLKConfig(RCC_RTCCLKSource_LSE);


//RTC開啟

RCC_RTCCLKCmd(ENABLE);


//開啟后需要等待APB1時鐘與RTC時鐘同步,才能讀寫寄存器

RTC_WaitForSynchro();


//讀寫寄存器前,要確定上一個操作已經結束

RTC_WaitForLastTask();


//設置RTC分頻器,使RTC時鐘為1Hz

//RTCperiod=RTCCLK/RTC_PR=(32.768KHz)/(32767+1)

RTC_SetPrescaler(32767);



//等待寄存器寫入完成

RTC_WaitForLastTask();


//使能秒中斷

RTC_ITConfig(RTC_IT_SEC,ENABLE);


//等待寫入完成

RTC_WaitForLastTask();


return;


/*******************************************************************************

*FunctionName:RTC_Config

*Description:上電時調用本函數,自動檢查是否需要RTC初始化,

*若需要重新初始化RTC,則調用RTC_Configuration()完成相應操作

*Input:None

*Output:None

*Return:None

*******************************************************************************/

voidRTC_Config(void)

//我們在BKP的后備寄存器1中,存了一個特殊字符0xA5A5

//第一次上電或后備電源掉電后,該寄存器數據丟失,

//表明RTC數據丟失,需要重新配置

if(BKP_ReadBackupRegister(BKP_DR1)!=0xA5A5)

//重新配置RTC

RTC_Configuration();

//配置完成后,向后備寄存器中寫特殊字符0xA5A5

BKP_WriteBackupRegister(BKP_DR1,0xA5A5);

else

//若后備寄存器沒有掉電,則無需重新配置RTC

//這里我們可以利用RCC_GetFlagStatus()函數查看本次復位類型

if(RCC_GetFlagStatus(RCC_FLAG_PORRST)!=RESET)

//這是上電復位

elseif(RCC_GetFlagStatus(RCC_FLAG_PINRST)!=RESET)

//這是外部RST管腳復位

//清除RCC中復位標志

RCC_ClearFlag();


//雖然RTC模塊不需要重新配置,且掉電后依靠后備電池依然運行

//但是每次上電后,還是要使能RTCCLK???????

//RCC_RTCCLKCmd(ENABLE);

//等待RTC時鐘與APB1時鐘同步

//RTC_WaitForSynchro();


//使能秒中斷

RTC_ITConfig(RTC_IT_SEC,ENABLE);

//等待操作完成

RTC_WaitForLastTask();


#ifdefRTCClockOutput_Enable

/*EnablePWRandBKPclocks*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR|RCC_APB1Periph_BKP,ENABLE);


/*AllowaccesstoBKPDomain*/

PWR_BackupAccessCmd(ENABLE);


/*DisabletheTamperPin*/

BKP_TamperPinCmd(DISABLE);


/*EnableRTCClockOutputonTamperPin*/

BKP_RTCOutputConfig(BKP_RTCOutputSource_CalibClock);

#endif


return;


關鍵字:STM32  RTC  初始化 引用地址:STM32筆記(五)RTC的初始化

上一篇:STM32 對內部FLASH讀寫接口函數
下一篇:最后一頁

推薦閱讀

匯頂科技自主研發并具有知識產權的心率檢測芯片正式商用于華為榮耀心晴耳機。這也代表著中國IC企業自主研發的高性能、低功耗心率檢測芯片首次應用于主流終端品牌。匯頂科技表示,在市場空間廣闊的智能可穿戴領域,公司助力客戶打造便捷安全又豐富有趣的應用體驗,讓消費者暢享智能科技的樂趣。華為榮耀心晴耳機是一款融入幾何美學設計的高性能個人終端產品...
近日,Telexistence株式會社將他們設計的機器人帶到了東京以南1000余公里的世界自然遺產——小笠原群島,100名身處東京的遠程操作者通過VR顯示器和觸覺手套實現了小笠原群島的虛擬旅行,欣賞海島美景之余,還體驗了給海龜喂食,甚至能夠實時感受到海龜殼的硬度和光滑的觸感,這次活動在東京迅速蔓延,引起了巨大的轟動。據介紹,Telexistence株式會社是由...
據IC Insights發布的報告顯示,預計2020年受疫情影響,CMOS圖像傳感器的銷量將會出現十年來的首次下滑,但是明年將會出現反彈,甚至出現創紀錄的新高。 圖源:IC Insights 報告指出,受智能手機等應用等刺激,CMOS圖像傳感器是過去十年增長最快的半導體產品類別,數據顯示,從2010年到2019年,CMOS圖像傳感器銷售額翻了兩番...
  無線藍牙音響怎么連接手機藍牙  首先我們需要長按藍牙音箱的電源鍵,打開藍牙音箱。在手機打開【設置】里面的【藍牙】選項,打開藍牙。在音響處長按配對按鍵開啟配對模式,然后在手機的藍牙列表中選擇藍牙音箱,然后等待一下即可配對成功。以下是詳細介紹:  1、準備好一臺藍牙音箱,保證電量充足,按上邊的電源鍵開啟,開啟后等待手機進行匹配;...

史海拾趣

問答坊 | AI 解惑

分享最近優化的EV1527無線遙控解碼程序

看到一個不錯的程序,分享:http://pic16.com/bbs/dispbbs.asp?boardid=8&id=45775 分享最近優化的EV1527無線遙控解碼程序,不使用中斷和TIMEREV1527很早就用過了,用得多了,慢慢的程序就越來越短了, 并且效果也越來越好的說。 大家都來瞧瞧吧。 ...…

查看全部問答∨

數學之美

本帖最后由 paulhyde 于 2014-9-15 09:04 編輯 數學之美:數學在信息檢索和自然語言處理中的主導作用和奇妙應用!  …

查看全部問答∨

求教綜合時設timing margin的問題

求教各位大牛,在某一個工藝節點下如何決定綜合時設多少timing margin. 譬如65nm工藝下,這個項目決定用15%的timing margin。那么這個值是如何得來的,或者如何證明這個值是最合理的。 這個問題有點難,我不知道,各位高人有知道的嗎? timing marg ...…

查看全部問答∨

微軟的MVP收入怎么樣啊

     微軟給錢嗎?…

查看全部問答∨

(KernelIoControl在ppc上得到結果是唯一的嗎? 在別的系統和設備上有區別嗎? 得到的結果是不是唯一的?

(KernelIoControl在ppc上得到結果是唯一的嗎? 在別的系統和設備上有區別嗎? 得到的結果是不是唯一的?…

查看全部問答∨

socket編程 connect總返回0

在Wince做的Socket程序,客戶端首先進行GPRS撥號,成功后在線程中完成connect,但是connect的地址無論什么都返回0,請教一下 為什么? 這個客戶端程序移植到VC下則測試 能用。 …

查看全部問答∨

C2000曬曬 + 2809開發板。

這個是原來為了熟悉280×系列的DSP而畫的,   將所有的IO口接出,并將相關的外設接上去。不是很全,但是很實用。   花最少的錢,辦最多的事。這個板子在以后的工作中幫了我們很大的忙。           ...…

查看全部問答∨

可以用C2000 LaunchPad 開發四軸飛行器?

可以用C2000 LaunchPad 開發四軸飛行器? [ 本帖最后由 hanskying666 于 2012-10-24 12:41 編輯 ]…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 榕江县| 金塔县| 松溪县| 祁连县| 寿阳县| 康平县| 瑞昌市| 呼和浩特市| 历史| 雅安市| 横山县| 车致| 南安市| 安陆市| 石泉县| 铜川市| 德州市| 井冈山市| 大余县| 林甸县| 利津县| 江口县| 时尚| 容城县| 北川| 胶南市| 冕宁县| 攀枝花市| 锦州市| 富顺县| 贞丰县| 奉化市| 丰都县| 大田县| 安陆市| 固镇县| 新野县| 侯马市| 赤壁市| 贵定县| 盐亭县|