chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

RTC時鐘與觸摸功能詳解(上)

jf_78858299 ? 來源:金沙灘工作室 ? 作者:金沙灘工作室 ? 2023-05-26 14:44 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實時時鐘——RTC

8.1.1 RTC初步認識

RTC(Real Time Clock)實時時鐘,主要用于為人們提供精確的實時時間或者為系統(tǒng)提供精確的時間基準(zhǔn)。RTC通常分為兩類,一類是外部時鐘芯片提供實時時鐘,比如DS1302時鐘芯片;另一類是CPU內(nèi)部集成RTC模塊。STM32F103內(nèi)部集成了RTC模塊,可以通過配置相應(yīng)的寄存器來實現(xiàn)實時時鐘的功能。

STM32內(nèi)部有一塊特殊區(qū)域,叫做備份區(qū)域(也叫后備區(qū)域),該區(qū)域主要包含了RTC核心模塊和備份寄存器兩部分。當(dāng)STM32在系統(tǒng)電源工作的狀態(tài)下,備份區(qū)域也是通過系統(tǒng)電源供電;當(dāng)STM32的系統(tǒng)電源VDD掉電的情況下,備份區(qū)域可以自動切換到VBAT使用備用電源如電池、電容等進行工作,維持RTC運行,并且保護備份寄存器數(shù)據(jù)不丟失。STM32電源部分結(jié)構(gòu)圖如圖8-1所示,如果沒有接外部電池,建議將VBAT引腳通過一個100nF的陶瓷電容與電源VDD相連。

圖片

圖8-1 STM32供電結(jié)構(gòu)圖

8.1.2 RTC基本結(jié)構(gòu)

RTC模塊主要由APB1接口和一組可編程計數(shù)器組成(RTC核心部件),如圖8-2所示。其中APB1接口部分(圖中藍色框內(nèi))用來實現(xiàn)CPU通過APB1總線和RTC寄存器相互通信;RTC核心部分(圖中紅色框內(nèi))由一個RTC預(yù)分頻模塊和一個32位可編程計數(shù)器組成,這部分運行在后備區(qū)域(圖示灰底部分)。

圖片

圖8-2 RTC時鐘結(jié)構(gòu)框圖

1、 RTC的時鐘源 —— RTCCLK

RTCCLK可以通過備份域控制寄存器(RCC_BDCR)來選擇其時鐘源,可以分別用HSE/128、LSI或者LSE作為RTC時鐘源。其中HSE是高速外部時鐘,Kingst-32F1開發(fā)板中HSE采用的是8MHz的外部晶振,該時鐘同樣也是系統(tǒng)時鐘源;LSI是低速內(nèi)部時鐘,由STM32內(nèi)部RC振蕩器產(chǎn)生,頻率為40KHz,該時鐘源受環(huán)境影響較大;LSE為低速外部時鐘,需要外接頻率為32.768KHz的晶振,LSE是一個低功耗且精準(zhǔn)度相對較高的的時鐘源。

當(dāng)系統(tǒng)主電源關(guān)閉時,HSE無法工作,而如果采用LSI作為RTC時鐘源,一方面精度相對較低,另外一方面會有相對大的功率消耗,所以大多數(shù)情況下RTC的時鐘源是采用LSE,LSE的晶振的負載電容要求為6pF。

2、RTC預(yù)分頻****模塊

RTC預(yù)分頻模塊包含了一個20位的可編程分頻器,可以通過對預(yù)分頻裝載寄存器RTC_PRL配置,實現(xiàn)RTCCLK時鐘信號分頻,每經(jīng)過‘N+1’個時鐘周期輸出一個計時時間為1秒的RTC時間基準(zhǔn)TR_CLK,如圖8-2中左側(cè)紅框所示。如果在RTC_CR寄存器中設(shè)置了相應(yīng)的允許位(SECIE位),每個TR_CLK周期RTC會產(chǎn)生一個中斷。通常情況下,用戶是將RTC時間基準(zhǔn)配置成1秒,因此這個中斷也常被稱為秒中斷。

圖8-2種RTC_DIV是一個只讀寄存器,它的作用是對輸入的RTCCLK進行計數(shù),當(dāng)計數(shù)值與預(yù)分頻寄存器中的值相匹配時,輸出TR_CLK信號,然后重新計數(shù)。用戶可以通過讀取RTC_DIV寄存器,獲取當(dāng)前的分頻計數(shù)器的當(dāng)前值而不停止分頻計數(shù)器的工作。當(dāng)RTC_PRL或RTC_CNT寄存器中的數(shù)據(jù)發(fā)生改變后,RTC_DIV會由硬件重新裝載。

3、 32位的****可編程計數(shù)器

RTC核心部分的第二個模塊是一個32位可編程、向上計數(shù)的計數(shù)器,可以通過兩個16位的寄存器(RTC_CNTH或RTC_CNTL)訪問。此計數(shù)器以TR_CLK時間基準(zhǔn)信號進行計數(shù),計滿后溢出,并且產(chǎn)生溢出標(biāo)志位。當(dāng)TR_CLK的周期為1秒時,計數(shù)器從0到溢出大概需要136年。

計數(shù)器按照TR_CLK周期累加外,同時與用戶設(shè)定的RTC鬧鐘寄存器(RTC_ALR)的時間比較,一致則產(chǎn)生鬧鐘標(biāo)志,如果此時開啟中斷,則會觸發(fā)中斷。

28.2 UNIX時間戳及時間轉(zhuǎn)換問題

RTC模塊本質(zhì)是一個計數(shù)器,當(dāng)設(shè)置RTC預(yù)分頻模塊輸出周期為1秒的TR_CLK信號時,通過計算TR_CLK的周期數(shù)來獲取從開始計數(shù)的0時刻到現(xiàn)在經(jīng)過的秒數(shù)。計數(shù)器為0的時刻稱之為計時元年,當(dāng)前時間為計時元年加上計數(shù)器的計數(shù)值。

不同人或者不同系統(tǒng)規(guī)定的計時元年可能不同,換算成當(dāng)前時間時會出現(xiàn)災(zāi)難性錯誤。為了解決這個問題,大部分操作系統(tǒng)普遍以格林尼治時間1970年1月1日0時0分0秒作計時元年,該時間最早在UNIX系統(tǒng)中使用,因此從計時元年到當(dāng)前時間的經(jīng)過的秒數(shù)也被稱之為UNIX時間戳。

因此使用RTC模塊時,首先要計算出當(dāng)前時間的UNIX時間戳X,然后將時間戳X寫入到RTC_CNT寄存器中并啟動計時。獲取當(dāng)前時間時,先讀出RTC_CNT寄存器的值,然后再加上計時元年,所得到的時間便是當(dāng)前時間。

38.3 RTC模塊基本操作

8.3.1 讀RTC寄存器

由于RTC核心部件位于后備區(qū)域,雖然RTC的寄存器讀寫由APB1接口完成,但是APB1接口在系統(tǒng)電源掉電時是停止工作的。由于RTC核心部件和APB1接口是相互獨立的,因此他們使用不同的時鐘源,當(dāng)發(fā)生以下三種情況時,會導(dǎo)致時鐘不同步。

(1)發(fā)生系統(tǒng)復(fù)位或電源復(fù)位

(2)系統(tǒng)剛從待機模式喚醒

(3)系統(tǒng)剛從停機模式喚醒

當(dāng)發(fā)生以上三種情況,讀寫RTC相關(guān)寄存器之前,必須首先檢測RTC_CRL寄存器中的RSF位,確保此位被置1,即RTC核心部件和APB1兩者時鐘同步,檢測庫函數(shù)如下:

圖片

8.3.2 配置RTC寄存器

當(dāng)系統(tǒng)復(fù)位后,對后備寄存器和RTC的訪問將被禁止,這是為了防止對后備區(qū)域的意外寫操作。因此在配置RTC模塊前應(yīng)先設(shè)置寄存器RCC_APB1ENR的PWREN和BKPEN位,使能電源和后備接口時鐘,代碼如下:

圖片

使能后備區(qū)域時鐘后還要使能電源的寄存器PWR_CR的DBP位來取消后備區(qū)域的寫保護。代碼如下:

圖片

設(shè)置RTC時鐘源為LSE之前要先等待LSE時鐘啟動,保證LSE時鐘正常起振。啟動LSE時鐘代碼為:

圖片

LSE時鐘起振成功后才可以設(shè)置RTC時鐘源為LSE時鐘并使能RTC,由于RTC使用的時鐘源與APB1總線時鐘并非同一時鐘源,因此兩者的時鐘信號并不是同步的,需要等待RTC和APB1時鐘同步。

圖片

以上操作完畢后,就可以配置RTC寄存器,配置過程如下:

(1)查詢RTOFF位,直到RTOFF的值變?yōu)椤?’

(2)置CNF值為1,進入配置模式

(3)對一個或多個RTC寄存器進行寫操作

(4)清除CNF標(biāo)志位,退出配置模式

(5)查詢RTOFF,直至RTOFF位變?yōu)椤?’以確認寫操作已經(jīng)完成。

需要注意的是,對RTC任何寄存器的寫操作,都必須在前一次寫操作結(jié)束后才能繼續(xù)進行??梢酝ㄟ^查詢RTC_CR寄存器中的RTOFF狀態(tài)位,判斷RTC寄存器是否處于更新中,僅當(dāng)RTOFF狀態(tài)位是’1’時,才可以寫入RTC寄存器。配置完畢后需要清除CNF標(biāo)志位(即退出配置模式)才算配置完成,否則無法更新RTC寄存器,這個過程至少需要3個RTCCLK周期。

代碼如下:

圖片

以下是RTC模塊的驅(qū)動代碼:

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

圖片

RTC時鐘由于晶振精度以及環(huán)境影響等原因,會存在一些誤差,粗略測試每天會快2s左右,不同環(huán)境下誤差可能有所不同。

48.4 初識觸摸屏

觸摸屏是一種可接收觸頭等輸入信號的感應(yīng)式液晶顯示裝置,當(dāng)接觸了屏幕的圖形按鈕時,屏幕上的觸覺反饋可根據(jù)預(yù)先編寫的程序驅(qū)動各種設(shè)備,可以替代機械式按鈕,并且通過液晶顯示更加生動的影音效果。觸摸屏提供了一種簡單、方便、自然的人機交互方式,賦予了多媒體嶄新的面貌,是極富吸引力的全新多媒體交互設(shè)備,應(yīng)用非常廣泛。

8.4.1 觸摸屏的分類和特點

按照觸摸屏的工作原理和傳輸信息的介質(zhì)區(qū)分,觸摸屏可以分為電阻式、電容式、紅外線式以及表面聲波式,我們常見的主流應(yīng)用是電阻式和電容式。

電阻觸摸屏是在顯示器表面附著一個多層復(fù)合薄膜,薄膜底層由玻璃或硬塑料構(gòu)成,頂層為光滑防擦的塑料層,上下兩層的內(nèi)表面都涂有透明導(dǎo)電層,并且相互隔離開。上下兩個薄膜層組成一個電阻網(wǎng)絡(luò),當(dāng)手指按壓屏幕時,上下導(dǎo)電層就會出現(xiàn)接觸點,此時在X軸和Y軸分別施加電壓,通過對比觸摸點電壓與施加電壓可以計算出觸摸點的X和Y坐標(biāo),確定觸摸點的相對位置,電阻觸摸屏的結(jié)構(gòu)如圖8-3所示。

圖片

圖8-3電阻式觸摸屏結(jié)構(gòu)

電容觸摸屏是利用人體的電流感應(yīng)進行工作的四層復(fù)合玻璃屏,內(nèi)外層都涂有特殊材料,當(dāng)手指摸在金屬層上時,由于人體電場,用戶和觸摸屏表面形成一個耦合電容,對于高頻電流來說,電容是導(dǎo)體,于是手指從接觸點吸走一個很小的電流,這個電流從觸摸屏的四角的電極中流出,控制器通過對這四個電流比例的精確計算,得出觸摸點的位置,電容屏觸摸原理如圖8-4所示。

圖片

圖8-4 電容屏觸摸原理

電阻屏和電容屏之間特點比較:

1、電阻屏靠壓力使各層接觸,因此可以用手指、指甲、觸筆等進行操作;電容屏利用人體的電流與觸摸屏之間形成耦合電場,從而觸發(fā)電容感應(yīng)系統(tǒng),但是任何非導(dǎo)電物體如指甲、首套等無效,手寫比較困難。

2、電阻屏精度可以達到單個顯示像素,便于手寫,有助于在精準(zhǔn)操作;電容屏精度低,尤其是受限于手指接觸面限制,難以提高精度。

3、電阻觸屏價格比較低;電容屏成本比電阻屏貴10%到50%,在iPhone誕生之前的中低端手機大多是電阻屏,對成本不敏感的產(chǎn)品多采用電容屏。

4、電阻屏需要按下去,因此決定了他的頂部是軟的,多用塑料材質(zhì),這使他容易產(chǎn)生劃痕,但是通常不容易摔壞;電容屏外層通常使用玻璃,外層更不容易劃壞,方便去除污跡,但是嚴(yán)重沖擊容易碎裂,當(dāng)然電容屏也有塑料材質(zhì)。

5、電阻屏不能支持多點同時觸摸;電容屏是可以支持多點同時觸摸的。

6、電阻屏在惡劣環(huán)境下可以正常工作,而電容屏操作溫度典型值是0到35度,至少5%的濕度,因此復(fù)雜的工業(yè)場合應(yīng)用多用電阻屏。

7、電阻屏的可視效果相比電容屏差的多,尤其在陽光下,電容屏的可視效果優(yōu)于電阻屏。

電阻屏通常分為四線電阻屏和五線電阻屏,Kingst-32F1開發(fā)板上的TFT-LCD采用的是4線制電阻觸摸屏。

8.4.2 觸摸屏的控制原理

電阻式觸摸屏的4個邊對應(yīng) X+、Y+、X-、Y-四個電極,這也是4線電阻觸摸屏的由來。當(dāng)有筆尖或手指按壓觸摸屏表面時,觸摸屏的電阻性表面相當(dāng)于被分隔為兩個串聯(lián)的電阻,由于觸摸屏的電阻值與觸摸點到接地邊之間的距離成正比,根據(jù)串聯(lián)電阻之比等于電阻兩端電壓之比的原理,只需要測量出一端電阻的電壓即可得到電阻之比,進而計算出觸摸點到兩邊的距離之比,觸摸屏等效電路如圖8-5所示。

8-5觸摸屏等效電路圖

計算觸點的X、Y坐標(biāo)主要分為以下兩步:

  1. 計算X坐標(biāo),在X+電極施加驅(qū)動電壓U, X-電極接地,X+到 X-之間形成均勻電場。Y+做為引出端可以測得接觸點的電壓為U ref ,由于ITO層均勻?qū)щ?,觸點電壓與Uref電壓之比等于觸點X坐標(biāo)與屏寬度之比。假如X+與X-之間的距離為d,則

圖片

  1. 計算Y坐標(biāo),在Y+電極施加驅(qū)動電壓U, Y-電極接地,此時Y+到Y(jié)-之間形成均勻電場。X+作為引出端可以測得接觸點的電壓為U ref 。由于ITO層均勻?qū)щ?,觸點電壓與Uref之比等于觸點Y坐標(biāo)與屏高度之比。假如Y+與Y-之間的距離為d, 即:

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    462

    文章

    53537

    瀏覽量

    459148
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5589

    瀏覽量

    129066
  • cpu
    cpu
    +關(guān)注

    關(guān)注

    68

    文章

    11216

    瀏覽量

    222952
  • 實時時鐘
    +關(guān)注

    關(guān)注

    4

    文章

    325

    瀏覽量

    67998
  • RTC
    RTC
    +關(guān)注

    關(guān)注

    2

    文章

    639

    瀏覽量

    71004
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Kinetis L 系列 RTC 的補償功能詳解

    忽略的是 Kinetis L 系列 RTC 的補償功能。那這個功能的增加有什么樣的實際意義呢?首先是外圍電路的減少,舉例:以前我們的 RTC 要么使用外部
    發(fā)表于 03-02 15:18

    RTC時鐘模塊有哪些功能

    很多嵌入式設(shè)備在使用過程中,會碰到未聯(lián)網(wǎng)的狀態(tài),但是有需要保證時間的正常,或者定時開關(guān)機功能。這個時候就需要添加RTC 時鐘模塊。下面通過mstar 平臺的rx8130ce 型號時鐘調(diào)
    發(fā)表于 07-27 08:15

    W601的RTC時鐘功能概述

    13、W601的RTC時鐘文章目錄13、W601的RTC時鐘一、W601的RTC功能概述二、主要
    發(fā)表于 01-10 08:05

    淺談RTC實時時鐘特征與原理

    計數(shù)的計數(shù)器,在相應(yīng)軟件配置下,可提供時鐘日歷的功能。修改計數(shù)器的值可以重新設(shè)置系統(tǒng)當(dāng)前的時間和日期。 RTC模塊和時鐘配置系統(tǒng)(RCC_BDCR寄存器)處于后備區(qū)域,即在系統(tǒng)復(fù)位或從
    的頭像 發(fā)表于 06-30 15:54 ?1.2w次閱讀

    STM32開發(fā) -- RTC詳解

    RTC (Real Time Clock):實時時鐘實時時鐘是一個獨立的定時器。 RTC模塊擁有一組連續(xù)計數(shù)的計數(shù)器,在相應(yīng)軟件配置下,可提供時鐘
    發(fā)表于 11-30 13:06 ?27次下載
    STM32開發(fā) -- <b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    【STM32】RTC詳解

    00. 目錄文章目錄00. 目錄01. RTC概述02. RTC主要特性03. RTC部分功能3.1 時鐘和預(yù)分頻器3.2 實時
    發(fā)表于 12-04 17:21 ?26次下載
    【STM32】<b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    STM32CubeMX | 基于STM32使用HAL庫驅(qū)動RTC時鐘及鬧鐘功能

    STM32使用HAL庫驅(qū)動RTC時鐘及鬧鐘功能目錄STM32使用HAL庫驅(qū)動RTC時鐘及鬧鐘功能
    發(fā)表于 12-06 09:21 ?52次下載
    STM32CubeMX | 基于STM32使用HAL庫驅(qū)動<b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>及鬧鐘<b class='flag-5'>功能</b>

    RTC時鐘講解(一)

    什么是RTC RTC (Real Time Clock):實時時鐘 RTC是個獨立的定時器。RTC模塊擁有一個連續(xù)計數(shù)的計數(shù)器,在相應(yīng)的軟件
    的頭像 發(fā)表于 06-09 17:48 ?1.1w次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>講解(一)

    STM32CubeMX-實時時鐘(RTC)

    實時時鐘 (RTC) 是一個獨立的 BCD 定時器/計數(shù)器。RTC 提供具有可編程鬧鐘中斷功能的日歷時鐘 /日歷。
    的頭像 發(fā)表于 01-14 17:24 ?3184次閱讀

    RTC時鐘觸摸功能詳解(下)

    是CPU內(nèi)部集成RTC模塊。STM32F103內(nèi)部集成了RTC模塊,可以通過配置相應(yīng)的寄存器來實現(xiàn)實時時鐘功能。
    的頭像 發(fā)表于 05-26 14:45 ?3156次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>與<b class='flag-5'>觸摸</b><b class='flag-5'>功能</b><b class='flag-5'>詳解</b>(下)

    RTC詳解

    RTC的本質(zhì)很簡單,就是一個時鐘經(jīng)過精確分頻最后得到的一個1Hz的時鐘,也可以說是計數(shù)器,其他大部分功能都是基于這個計數(shù)器設(shè)計的數(shù)字邏輯。 本文講的
    的頭像 發(fā)表于 05-26 15:15 ?1.2w次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>詳解</b>

    CW32實時時鐘RTC)介紹(

    實時時鐘RTC)是一個專用的計數(shù)器 / 定時器,可提供日歷信息,包括小時、分鐘、秒、日、月份、年份以及星期。RTC 具有兩個獨立鬧鐘,時間、日期可組合設(shè)定,可產(chǎn)生鬧鐘中斷,并通過引腳輸出;支持時間
    的頭像 發(fā)表于 05-26 17:07 ?2254次閱讀
    CW32實時<b class='flag-5'>時鐘</b>(<b class='flag-5'>RTC</b>)介紹(<b class='flag-5'>上</b>)

    STM32 RTC實時時鐘(二)

    上次實驗完成了對實時時鐘的基本功能——計時的實驗,這次在計時的基礎(chǔ)RTC的可編程鬧鐘的功能進行測試。
    的頭像 發(fā)表于 07-22 15:43 ?2723次閱讀
    STM32 <b class='flag-5'>RTC</b>實時<b class='flag-5'>時鐘</b>(二)

    RTC時鐘芯片+電池的應(yīng)用案例(一)

    實時時鐘,簡稱RTC,是廣泛應(yīng)用于電子產(chǎn)品的重要元器件。愛普生RTC實時時鐘具有高精度、高穩(wěn)定性和多功能的特點,目前廣泛應(yīng)用于多個行業(yè)。下面
    的頭像 發(fā)表于 01-08 11:25 ?2400次閱讀
    <b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>芯片+電池的應(yīng)用案例(一)

    “耐高溫!”RTC時鐘芯片+電池的應(yīng)用案例(二)

    實時時鐘,簡稱RTC,是廣泛應(yīng)用于電子產(chǎn)品的重要元器件。愛普生RTC實時時鐘具有高精度、高穩(wěn)定性和多功能等特點,廣泛應(yīng)用于多個行業(yè)。
    的頭像 發(fā)表于 06-04 17:35 ?1335次閱讀
    “耐高溫!”<b class='flag-5'>RTC</b><b class='flag-5'>時鐘</b>芯片+電池的應(yīng)用案例(二)