国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32日歷讀取,設(shè)置和輸出

這篇具有很好參考價(jià)值的文章主要介紹了STM32日歷讀取,設(shè)置和輸出。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

關(guān)于RTC

1、RTC介紹
RTC(Real Time Clock):實(shí)時(shí)時(shí)鐘,是指可以像時(shí)鐘一樣輸出實(shí)際時(shí)間的電子設(shè)備,一般會(huì)是集成電路,因此也稱為時(shí)鐘芯片。總之,RTC只是個(gè)能靠電池維持運(yùn)行的32位定時(shí)器,并不像實(shí)時(shí)時(shí)鐘芯片,讀出來(lái)就是年月日。

RTC就只一個(gè)定時(shí)器而已,掉電之后所有信息都會(huì)丟失,因此我們需要找一個(gè)地方來(lái)存儲(chǔ)這些信息,于是就找到了備份寄存器(BKP)。因?yàn)樗綦姾笕匀豢梢酝ㄟ^(guò)紐扣電池供電,繼續(xù)工作,所以能時(shí)刻保存這些數(shù)據(jù)。

stm32F103使用外部晶體的32.768kHz的振蕩器,產(chǎn)生一個(gè)1秒長(zhǎng)的時(shí)間基準(zhǔn)。

RTC 模塊和時(shí)鐘配置系統(tǒng)(RCC_BDCR 寄存器)是在后備區(qū)域,即在系統(tǒng)復(fù)位或從待機(jī)模式喚醒后 RTC 的設(shè)置和時(shí)間維持不變。但是在系統(tǒng)復(fù)位后,會(huì)自動(dòng)禁止訪問(wèn)后備寄存器和 RTC,以防止對(duì)后備區(qū)域(BKP)的意外寫操作。所以在要設(shè)置時(shí)間之前, 先要取消備份區(qū)域(BKP)寫保護(hù)。

2、工作過(guò)程

RTC只是一個(gè)時(shí)鐘,但與RTC相連的有兩個(gè)系統(tǒng)時(shí)鐘:一個(gè)是APB1接口的PCLK1,另一個(gè)是RTC時(shí)鐘。這樣,RTC功能也就分為兩個(gè)部分:第一部分,APB1接口部分,與APB1總線相連,MCU也就是通過(guò)這條總線對(duì)其進(jìn)行讀寫操作。另一部分,RTC核心,其整個(gè)核心部分位于后備區(qū)域,所以只要有VBAT引腳供電,就能一直工作,由一系列可編程計(jì)數(shù)器組成,這部分又再細(xì)分為兩個(gè)組件:20位的預(yù)分頻模塊與32位可編程計(jì)數(shù)器。預(yù)分頻模塊用來(lái)產(chǎn)生最長(zhǎng)為1秒的RTC時(shí)間基準(zhǔn),而32位的可編程的計(jì)數(shù)器可被初始化為當(dāng)前的系統(tǒng)時(shí)間。

RTC_PRL:預(yù)分頻裝載寄存器
RTC_DIV:預(yù)分頻器余數(shù)寄存器
RTC_CNT:計(jì)數(shù)器寄存器
RTC_ALR:鬧鐘寄存器

首先,在初始化時(shí)候,DIV和PRL都會(huì)裝載同樣的數(shù)。RTCCLK頻率為32.768kHz,來(lái)驅(qū)動(dòng)DIV工作,DIV為自減寄存器。當(dāng)DIV減少到0時(shí),會(huì)產(chǎn)生一個(gè)TR_CLK信號(hào),該信號(hào)會(huì)觸發(fā)三件事情:①將PRL的數(shù)重裝在到DIV中;②觸發(fā)CNT計(jì)數(shù)器+1;③觸發(fā)SECF,進(jìn)而產(chǎn)生秒中斷。我們會(huì)設(shè)置一個(gè)合理的預(yù)分頻數(shù),使得TR_CLK觸發(fā)時(shí)間剛好是1s。ALR中存儲(chǔ)的是我們?cè)O(shè)置的鬧鐘秒數(shù),當(dāng)CNT和ALR中的數(shù)據(jù)相同時(shí),就會(huì)觸發(fā)鬧鐘中斷或者鬧鐘喚醒。(關(guān)于CNT和ALR中存放的數(shù)據(jù),為時(shí)間戳。)

1s的時(shí)間如何計(jì)算?

我們的RTC_CLK為32.768kHz,所以只要PRL中寫入32767即可,即為2的15次方。
我們只需要在PRL的低16位寄存器中寫入0x7FFF即可。

DIV寄存器存在的意義?
從上述能知道TR_CLK輸出必須為1s。那么我們想要的到0.15s,應(yīng)該怎么實(shí)現(xiàn)呢?
道理很簡(jiǎn)單,因?yàn)镈IV是自減的,并且從32768一直減少到0,所需要的時(shí)間為1s。所以減少一個(gè)數(shù),所用的時(shí)間為1/32768s,那么減少多少個(gè)數(shù),就計(jì)時(shí)了0.15s呢?
1/32768s * n = 0.15
n = 0.15 * 32768
又因?yàn)镈IV寄存器是可讀的,所以我們就能實(shí)現(xiàn)0.15s的計(jì)時(shí)。

從框圖中,還可以看到,只有秒中斷和鬧鐘中斷能觸發(fā)中斷,溢出是沒(méi)有中斷的。

STM32CubeMAX界面

讀取STM32F103C8T6 內(nèi)部的時(shí)鐘(年月日時(shí)分秒),日歷(星期x),1秒周期,通過(guò)串口輸出到PC上位機(jī)

設(shè)置RCC
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)

設(shè)置RTCSTM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)
設(shè)置RTC參數(shù)
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)
設(shè)置時(shí)鐘樹(shù)
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)
創(chuàng)建工程
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)

keil界面

在main.c文件中重寫fputc函數(shù),完成printf函數(shù)的重定向

//添加頭文件#include "stdio.h"
int fputc(int ch,FILE *f){
 uint8_t temp[1]={ch};
 HAL_UART_Transmit(&huart1,temp,1,2);
 return ch;
}

在main.c中定義時(shí)間和日期的結(jié)構(gòu)體用來(lái)獲取時(shí)間和日期

RTC_DateTypeDef GetData;  //獲取日期結(jié)構(gòu)體

RTC_TimeTypeDef GetTime;   //獲取時(shí)間結(jié)構(gòu)體

在main函數(shù)的while循環(huán)中添加以下代碼

/* Get the RTC current Time */
	    HAL_RTC_GetTime(&hrtc, &GetTime, RTC_FORMAT_BIN);
      /* Get the RTC current Date */
      HAL_RTC_GetDate(&hrtc, &GetData, RTC_FORMAT_BIN);

      /* Display date Format : yy/mm/dd */
      printf("%02d/%02d/%02d\r\n",2000 + GetData.Year, GetData.Month, GetData.Date);
      /* Display time Format : hh:mm:ss */
      printf("%02d:%02d:%02d\r\n",GetTime.Hours, GetTime.Minutes, GetTime.Seconds);

      printf("\r\n");

      HAL_Delay(1000);

編譯運(yùn)行結(jié)果如下:
STM32日歷讀取,設(shè)置和輸出,stm32,嵌入式硬件,單片機(jī)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-827942.html

到了這里,關(guān)于STM32日歷讀取,設(shè)置和輸出的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動(dòng)過(guò)程

    【嵌入式學(xué)習(xí)筆記】嵌入式基礎(chǔ)9——STM32啟動(dòng)過(guò)程

    程序段交叉引用關(guān)系(Section Cross References):描述各文件之間函數(shù)調(diào)用關(guān)系 刪除映像未使用的程序段(Removing Unused input sections from the image):描述工程中未用到被刪除的冗余程序段(函數(shù)/數(shù)據(jù)) 映像符號(hào)表(Image Symbol Table):描述各符號(hào)(程序段/數(shù)據(jù))在存儲(chǔ)器中的地址、類

    2024年02月15日
    瀏覽(64)
  • stm32嵌入式實(shí)驗(yàn)考核

    STM32 實(shí)驗(yàn)考核題目 1. 利用 STM32 小板實(shí)現(xiàn):控制外接 LED 燈每隔 3 秒鐘亮暗變換,同 時(shí)在 PC 機(jī)上顯示 MCU 的計(jì)時(shí)時(shí)間,MCU 的初始時(shí)間由 PC 機(jī) 方設(shè)置。 2. 利用 STM32 小板實(shí)現(xiàn):利用導(dǎo)線外接 GPIO 口模擬 2 個(gè)按鍵輸入, 根據(jù)輸入組合的四種情況,分別控制三色燈四種流水燈效果

    2024年02月03日
    瀏覽(29)
  • 嵌入式 STM32 通訊協(xié)議--MODBUS

    嵌入式 STM32 通訊協(xié)議--MODBUS

    目錄 一、自定義通信協(xié)議 1、協(xié)議介紹 2、網(wǎng)絡(luò)協(xié)議 3、自定義的通信協(xié)議? 二、MODBUS通信協(xié)議 1、概述 2、MODBUS幀結(jié)構(gòu)? 協(xié)議描述 3、MODBUS數(shù)據(jù)模型 ? 4、MODBUS事務(wù)處理的定義 5、MODBUS功能碼? 6、功能碼定義? ?7、MODBUS數(shù)據(jù)鏈路層 8、MODBUS地址規(guī)則? 9、MODBUS幀描述 10、MODBUS兩種

    2024年02月11日
    瀏覽(40)
  • STM32的時(shí)鐘系統(tǒng)(嵌入式學(xué)習(xí))

    STM32的時(shí)鐘系統(tǒng)(嵌入式學(xué)習(xí))

    時(shí)鐘是指用于計(jì)量和同步時(shí)間的裝置或系統(tǒng)。時(shí)鐘是嵌入式系統(tǒng)的脈搏,處理器內(nèi)核在時(shí)鐘驅(qū)動(dòng)下完成指令執(zhí)行,狀態(tài)變換等動(dòng)作,外設(shè)部件在時(shí)鐘的驅(qū)動(dòng)下完成各種工作,例如:串口數(shù)據(jù)的發(fā)送、AD轉(zhuǎn)換、定時(shí)器計(jì)數(shù)等。因此時(shí)鐘對(duì)于計(jì)算機(jī)系統(tǒng)是至關(guān)重要的,通常時(shí)鐘系

    2024年02月16日
    瀏覽(29)
  • 嵌入式——新建STM32工程(標(biāo)準(zhǔn)庫(kù))

    嵌入式——新建STM32工程(標(biāo)準(zhǔn)庫(kù))

    目錄 一、初識(shí)標(biāo)準(zhǔn)庫(kù) 1.CMSIS標(biāo)準(zhǔn)及庫(kù)層級(jí)關(guān)系 2.庫(kù)文件介紹 (1)Libraries文件夾 ①CMSIS文件夾 ②STM32F10x_Std_Periph_Driver文件夾 ③ 在用庫(kù)建立一個(gè)完整的工程時(shí),還需要添加stm32f10x_it.c、 stm32f10x_conf.h 和 system_stm32f10x.c文件 (2)Project文件夾 (3)Utilities文件夾 3.庫(kù)各文件之間的關(guān)

    2024年01月23日
    瀏覽(91)
  • STM32串口通信詳解(嵌入式學(xué)習(xí))

    STM32串口通信詳解(嵌入式學(xué)習(xí))

    時(shí)鐘信號(hào)在電子領(lǐng)域中是指用于同步和定時(shí)電路操作的周期性信號(hào)。它在數(shù)字系統(tǒng)和通信系統(tǒng)中起著至關(guān)重要的作用,用于協(xié)調(diào)各個(gè)組件之間的數(shù)據(jù)傳輸和操作。 時(shí)鐘信號(hào)有以下幾個(gè)重要的方面: 頻率:時(shí)鐘信號(hào)的頻率是指單位時(shí)間內(nèi)信號(hào)周期的數(shù)量。它通常以赫茲(Hz)為

    2024年02月09日
    瀏覽(23)
  • STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))

    STM32的中斷系統(tǒng)詳解(嵌入式學(xué)習(xí))

    中斷是處理器中的一種機(jī)制,用于響應(yīng)和處理突發(fā)事件或緊急事件。當(dāng)發(fā)生中斷時(shí),當(dāng)前正在執(zhí)行的程序會(huì)被暫時(shí)中止,處理器會(huì)跳轉(zhuǎn)到中斷處理程序(也稱為中斷服務(wù)例程),對(duì)中斷事件進(jìn)行處理。處理完中斷后,處理器再返回到被中斷的程序繼續(xù)執(zhí)行。 中斷可以分為內(nèi)部

    2024年02月12日
    瀏覽(35)
  • 嵌入式C語(yǔ)言基礎(chǔ)(STM32)

    前言:一條混跡嵌入式3年的老咸魚(yú),想到自己第一次接觸到stm32的庫(kù)函數(shù)時(shí),c語(yǔ)言稀碎,痛不欲生的場(chǎng)景,該文章為萌新指條明路。 位操作在嵌入式中常用于直接對(duì)芯片的寄存器進(jìn)行操作,當(dāng)時(shí)作為初學(xué)者的我看著一臉懵逼,至于為什么這樣修改,下面好好分析一下。 ?一

    2024年02月02日
    瀏覽(22)
  • 嵌入式學(xué)習(xí)筆記——STM32的時(shí)鐘樹(shù)

    嵌入式學(xué)習(xí)筆記——STM32的時(shí)鐘樹(shù)

    在之前的所有代碼編程的過(guò)程中,似乎每次都繞不開(kāi)一個(gè)叫做時(shí)鐘使能的東西,當(dāng)時(shí)我們是在數(shù)據(jù)手冊(cè)上直接看其掛接在那條時(shí)鐘線上的,那么STM32內(nèi)部的時(shí)鐘到底是怎么一個(gè)構(gòu)型呢,本文來(lái)對(duì)此做一個(gè)介紹。 老規(guī)矩,一個(gè)新的名詞出現(xiàn),首先需要搞清楚它是個(gè)啥,下圖中對(duì)

    2024年02月02日
    瀏覽(24)
  • 嵌入式學(xué)習(xí)stm32基礎(chǔ)知識(shí)(期末復(fù)習(xí))

    嵌入式學(xué)習(xí)stm32基礎(chǔ)知識(shí)(期末復(fù)習(xí))

    1. 計(jì)算機(jī)的體系架構(gòu) 馮諾依曼架構(gòu) ? 在完整的計(jì)算機(jī)系統(tǒng)中,包含五個(gè)部分,儲(chǔ)存器,運(yùn)算器,控制器輸入設(shè)備和輸出設(shè)備。 改進(jìn)的馮諾依曼架構(gòu) 改進(jìn)型架構(gòu)的各模塊的高速數(shù)據(jù)交換中心利用儲(chǔ)存器這個(gè)大容量,極大的提高了效率。 哈佛架構(gòu) ? 哈佛結(jié)構(gòu)數(shù)據(jù)空間和地址

    2024年02月07日
    瀏覽(73)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包