91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

電子發(fā)燒友App

硬聲App

掃碼添加小助手

加入工程師交流群

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>嵌入式開(kāi)發(fā)>STM32 RTC實(shí)時(shí)時(shí)鐘資料下載

STM32 RTC實(shí)時(shí)時(shí)鐘資料下載

2021-04-16 | pdf | 154.32KB | 次下載 | 5積分

資料介紹

我用的是STM32庫(kù)函數(shù):兩個(gè)知識(shí)點(diǎn): 一、RTC時(shí)鐘框圖分析(重要) 二、時(shí)間是怎樣顯示出來(lái)的(簡(jiǎn)析) 一、RTC時(shí)鐘框圖分析(重要) 先熟悉一下幾個(gè)知識(shí)點(diǎn): 1、STM32的實(shí)時(shí)時(shí)鐘(RTC)是一個(gè)獨(dú)立的定時(shí)器! 2、RTC模塊和時(shí)鐘配置系統(tǒng)(RCC_BDCR寄存器)是在后備區(qū)域,即在系統(tǒng)復(fù)位火從待機(jī)模式喚醒后RTC的設(shè)置和時(shí)間維持不變。 RTC這章中,對(duì)RTC相關(guān)的寄存器的操作特別重要,我在這里不解釋了,請(qǐng)查閱手冊(cè)。。 先上圖! RTC時(shí)鐘框圖 RTC時(shí)鐘框圖分為完全獨(dú)立的兩個(gè)部分:1、APB1接口部分(用來(lái)RTC相關(guān)的寄存器);2、RTC核心; 第一部分:APB1接口。注意:這里涉及到寄存器RTC_CRL中的RSF位,這位是寄存器的同步標(biāo)志,具體內(nèi)容去看STM32參考手冊(cè)RTC這一章。 第二部分:RTC核心。 這里分為兩個(gè)模塊: (1)RTC預(yù)分頻器模塊; (2)一個(gè)32位的可編程計(jì)數(shù)器; 下面開(kāi)始分析第二部分: 先給大家介紹下后備區(qū)域的幾個(gè)特別重要的寄存器: 1、RTC_DIV(重要):RTC預(yù)分頻器余數(shù)寄存器。這個(gè)寄存器的作用是來(lái)獲得比秒鐘更加準(zhǔn)確的時(shí)鐘(0.1s,0.01s),該寄存器是自減的,用來(lái)保存還需要多少個(gè)時(shí)鐘周期獲得一個(gè)秒信號(hào)。這里加上一個(gè)公式(STM32參考手冊(cè)里有):fTR_CLK=fRTCCLK/(PRL[19:0] 1) 到這里是書(shū)上的原話(huà)~! 解釋一下,RTC_DIV寄存器的值是由RTC_PRL(RTC預(yù)分頻器裝載寄存器)提供的,而RTC_DIV寄存器的時(shí)鐘頻率是由RTCCLK提供的(看圖)。比如我們把RTC_PRL值設(shè)為32767,則RTC_DIV寄存器的值也為32767,他和RTCCLK的時(shí)鐘頻率是一樣的(這里根據(jù)上面的公式,RTC_PRL加1,則RTC_DIV也加1)。RTCCLK的時(shí)鐘周期是1/32768(s),也就是每一個(gè)RTCCLK的時(shí)鐘周期,RTC_DIV自減1,直至到1s鐘后,被硬件重新裝載,也就是1s鐘減32768次。那他到底是怎么提供0.1s,甚至是0.01s的呢? 舉個(gè)例子就明白了。比如我想要得到1.12秒的這個(gè)時(shí)間,就要求RTC_DIV自減0.12/(1/32768)次。RTC_DIV只得到0.12s的時(shí)間,還有1s時(shí)間從哪兒來(lái)?他是TR_CLK提供的。這個(gè)問(wèn)題會(huì)在下文講解。 2、RTC_PRL:RTC預(yù)分頻裝載寄存器。 這個(gè)寄存器有兩個(gè)作用: (1)提供給RTC_DIV的重新裝載值; (2)設(shè)置時(shí)鐘分頻系數(shù)。 第一個(gè)作用不講了。第二個(gè)作用:設(shè)置時(shí)鐘分頻系數(shù)。比如我們使用32.768KHz的晶振作為時(shí)鐘輸入,那么我們配置這個(gè)寄存器值位32767,就可以得到1s鐘的計(jì)數(shù)頻率(32768/(32767 1),單位(HZ))。 3、RTC_CNT(重要):RTC計(jì)數(shù)器寄存器。這個(gè)寄存器較簡(jiǎn)單,用來(lái)記錄秒鐘值。如果之前對(duì)RTC_CR(控制寄存器),的相關(guān)中斷允許位配置的話(huà),RTC_CNT寄存器可以產(chǎn)生一個(gè)溢出中斷。 4、RTC_ALR:RTC鬧鐘寄存器。從圖中就可以看出來(lái),很簡(jiǎn)單。用來(lái)標(biāo)記鬧鐘產(chǎn)生時(shí)間,如果RTC_CNT的值和RTC_ALR的值相等的話(huà),并使能中斷的話(huà)(在RTC_CR(控制寄存器)中配置),會(huì)產(chǎn)生一個(gè)鬧鐘中斷。 后備區(qū)域的寄存器就給大家介紹到這兒。相比大家通過(guò)上面的介紹結(jié)合框圖,頭腦里面應(yīng)該有個(gè)大致流程了吧。沒(méi)有~???臥槽~那就給大家理一遍思路 首先外部加進(jìn)來(lái)一個(gè)時(shí)鐘信號(hào)RTCCLK(32.768K),然后設(shè)置RTC_PRL的分頻系數(shù)為32767,得到一個(gè)秒時(shí)鐘信號(hào)TR_CLK(1HZ)。當(dāng)TR_CLK每過(guò)一個(gè)時(shí)鐘周期,產(chǎn)生一個(gè)RTC_Second(秒鐘中斷),同時(shí)RTC_CNT計(jì)數(shù)器(記錄秒值)加1。如果要求更精準(zhǔn)的時(shí)間,還可以在RTC_CR寄存器的RSF位被置1時(shí)去讀RTC_DIV的值。 二、時(shí)間是怎樣顯示出來(lái)的(簡(jiǎn)析) 主函數(shù)中有這么兩條語(yǔ)句: LCD_ShowString(60,130,200,16,16," - - "); ① LCD_ShowString(60,162,200,16,16," : : "); ② 在看這三條語(yǔ)句(這里統(tǒng)稱(chēng)”中間三條語(yǔ)句“): LCD_ShowNum(60,130,calendar.w_year,4,16); LCD_ShowNum(100,130,calendar.w_month,2,16); LCD_ShowNum(124,130,calendar.w_date,2,16); 和這三條語(yǔ)句(這里統(tǒng)稱(chēng)”最后三條語(yǔ)句“): LCD_ShowNum(60,162,calendar.hour,2,16); LCD_ShowNum(84,162,calendar.min,2,16); LCD_ShowNum(108,162,calendar.sec,2,16); 很顯然,中間三條語(yǔ)句是顯示年月日的對(duì)應(yīng)①,最后三條語(yǔ)句是顯示時(shí)分秒的對(duì)應(yīng)②。這些結(jié)構(gòu)體成員都在初始化函數(shù)(RTC_Init();)中被賦值了,怎么賦值的,大家自己去研究吧。然后在硬件中,TR_CLK的每個(gè)時(shí)鐘周期都會(huì)觸發(fā)秒中斷,在秒中斷服務(wù)函數(shù)中又對(duì)時(shí)間進(jìn)行了更新。 想顯示時(shí)間,是不是先得設(shè)置一個(gè)基礎(chǔ)時(shí)間,然后讓系統(tǒng)在基礎(chǔ)時(shí)間上,進(jìn)行自加。 第一步:設(shè)置一個(gè)基礎(chǔ)時(shí)間。在對(duì)時(shí)鐘進(jìn)行配置時(shí)(在初始化函數(shù)(RTC_Init();中配置),里面有個(gè)RTC_Set();函數(shù),此函數(shù)會(huì)你設(shè)置的年月日時(shí)分秒進(jìn)行計(jì)算,算出從1970年到你設(shè)置那個(gè)時(shí)刻總共是多少秒(這博主也不知道為什么是1970年),然后把算出來(lái)的這個(gè)秒值賦給RTC_CNT計(jì)數(shù)器作為初值。 第二步:系統(tǒng)自己更新時(shí)間(自加)。時(shí)間是怎么更新的,這里給大家簡(jiǎn)單提一下。。在更新函數(shù)(RTC_Get();)中,首先會(huì)讀取RTC_CNT計(jì)數(shù)器中的值,然后經(jīng)過(guò)一番倒計(jì)算,計(jì)算出年月日時(shí)分秒和星期,分別賦值給那些時(shí)間的結(jié)構(gòu)體變量。于是在主函數(shù)的while(1)中,會(huì)不斷的被秒中斷刷新時(shí)間,并顯示在LCD上。 這樣,一個(gè)完整的時(shí)鐘就顯示在LCD屏幕上了。大功告成! 轉(zhuǎn)自: (mbbeetchina)
單片機(jī) mcu 嵌入式 STM
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1TC358743XBG評(píng)估板參考手冊(cè)
  2. 1.36 MB  |  330次下載  |  免費(fèi)
  3. 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
  4. 5.73 MB  |  6次下載  |  免費(fèi)
  5. 3100W短波放大電路圖
  6. 0.05 MB  |  4次下載  |  3 積分
  7. 4嵌入式linux-聊天程序設(shè)計(jì)
  8. 0.60 MB  |  3次下載  |  免費(fèi)
  9. 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
  10. 0.61 MB  |  2次下載  |  免費(fèi)
  11. 6基于FPGA的C8051F單片機(jī)開(kāi)發(fā)板設(shè)計(jì)
  12. 0.70 MB  |  2次下載  |  免費(fèi)
  13. 751單片機(jī)窗簾控制器仿真程序
  14. 1.93 MB  |  2次下載  |  免費(fèi)
  15. 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
  16. 0.86 MB  |  2次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21548次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6653次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537796次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191185次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183278次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)