吴忠躺衫网络科技有限公司

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>嵌入式開發>STM32 RTC實時時鐘資料下載

STM32 RTC實時時鐘資料下載

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

資料介紹

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

評論

查看更多

下載排行

本周

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

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33564次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21548次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6653次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537796次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420026次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191185次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183278次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
牛牛现金棋牌| 大发888游戏官方网站| 做生意大门方位风水| 百家乐官网游戏打水方法| 德州扑克官方下载| 沙龙百家乐娱乐场开户注册| 巴厘岛百家乐官网的玩法技巧和规则| 广东百家乐官网扫描分析仪 | 百家乐官网分析仪博彩正网 | 大发888真人斗地主| 百家乐赌场讨论群| 速博百家乐官网的玩法技巧和规则| 昆明百家乐官网装修装潢有限公司 | e世博百家乐官网娱乐场| 利来国际开户| 大发888送彩金| 威尼斯人娱乐城反水| 现场百家乐牌路分析| 做生意门口朝向| 玩百家乐官网有几种公式| 线上百家乐官网可靠吗| 半岛棋牌游戏| 超级老虎机系统| 顶尖百家乐的玩法技巧和规则| 澳门百家乐怎么才能赢钱| 百家乐销售视频| 百家乐官网电子游戏试| 百家乐官网机械投注法| 百家乐官网赢钱皇冠| 明升国际娱乐城| 球探网即时比分| 大发888支付宝代充| 威尼斯人娱乐城信誉| 百家乐是怎样算牌| 真人百家乐澳门娱乐城| 百家乐声音不印网| 阴宅24山坟前放水口| 金赞百家乐官网的玩法技巧和规则 | 德州扑克偷鸡| 大发8888| 太阳城官方网|