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

【STM32學(xué)習(xí)】定時(shí)器寄存器配置、功能工作過(guò)程詳解

這篇具有很好參考價(jià)值的文章主要介紹了【STM32學(xué)習(xí)】定時(shí)器寄存器配置、功能工作過(guò)程詳解。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

零、參考

STM32-定時(shí)器詳解
STM32個(gè)人筆記-定時(shí)器

一、引言

本文針對(duì)STM32F103系列單片機(jī)的定時(shí)器進(jìn)行介紹。
主要是其常用功能的工作流程、以及寄存器的對(duì)應(yīng)配置。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

該圖清晰的表明了各種定時(shí)器的參數(shù)與功能。其中,基礎(chǔ)定時(shí)器基本上就只有最簡(jiǎn)單的計(jì)數(shù)到了然后觸發(fā)中斷的功能;通用和高級(jí)定時(shí)器,在其基礎(chǔ)上還有PWM輸出、捕獲/比較、剎車、死區(qū)設(shè)置等功能。圖片來(lái)源

二、功能以及寄存器說(shuō)明

1、最基本的定時(shí)功能(時(shí)基單元)

1.1 框圖

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器
stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器
stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

這是截取了參考手冊(cè)中三種定時(shí)器的款圖,對(duì)于下半部分該功能涉及不到。
對(duì)于定時(shí)器的始終來(lái)源CK_INT,大家可以根據(jù)RCC時(shí)鐘樹,查看時(shí)鐘源頻率是多少。
從CK_INT到CK_PSC,三種類型的定時(shí)器基本都是一致的;從CK_PSC到最后的中斷觸發(fā),不同的是高級(jí)定時(shí)器還有一個(gè)重復(fù)數(shù)據(jù)定時(shí)器。也就是說(shuō)高級(jí)定時(shí)器,并不是當(dāng)計(jì)數(shù)器溢出之后就立即觸發(fā)中斷,其還會(huì)經(jīng)過(guò)重復(fù)計(jì)數(shù)器的操作才會(huì)被觸發(fā)。

影子寄存器:框圖中帶有陰影的寄存器,除了自己本體外,還有一個(gè)一模一樣的影子寄存器。我們可以將本體理解為用來(lái)當(dāng)作緩沖的,影子才是真正起作用的。為什么這樣設(shè)計(jì)呢?比如,當(dāng)定時(shí)器正在運(yùn)行當(dāng)中,此時(shí)ARR=36,CNT計(jì)數(shù)到32,就在這時(shí),我們修改ARR為30,如果沒(méi)有影子,那么CNT此時(shí)來(lái)說(shuō)已經(jīng)溢出了,會(huì)直接觸發(fā)中斷,但是很明顯,由于我們的修改,怕破壞了當(dāng)前定時(shí)器輸出的周期,如果是PWM輸出的話,在要求及其嚴(yán)格的場(chǎng)景下,可能會(huì)產(chǎn)生某些誤差。所以增加了影子寄存器,當(dāng)我們修改重要寄存器的時(shí)候會(huì)先放到本體寄存器,然后當(dāng)當(dāng)前周期結(jié)束時(shí),才會(huì)由UEV事件觸發(fā),將本體中的設(shè)置放到影子中起作用。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

從圖中可以看出,當(dāng)新值寫入時(shí),是先寫入到本體,并未起作用。當(dāng)當(dāng)前運(yùn)行周期結(jié)束后,才會(huì)將新值加載到影子中。

1.2 工作流程

對(duì)于基本和通用定時(shí)器:
PSC預(yù)分頻器,根據(jù)設(shè)置的分頻數(shù),將CK_INT傳遞過(guò)來(lái)的時(shí)鐘頻率分頻后,驅(qū)動(dòng)CNT計(jì)數(shù)器計(jì)數(shù)。即計(jì)一個(gè)數(shù)的時(shí)間t是1/(TIMxCLK/(PSC+1))=(PSC+1)/TIMxCLK;那么將CNT中的數(shù)據(jù)計(jì)完,需要的時(shí)間為(ARR+1)*(PSC+1)/TIMxCLK。然后觸發(fā)中斷,ARR會(huì)將數(shù)據(jù)重新裝到CNT中,然后執(zhí)行中斷服務(wù)函數(shù)。

例如,TIMXCLK=72MHz,PSC=7199,ARR=4999。則中斷事件為t=(4999+1)*(7199+1)/ 72 * 1000000 = 0.5s,即500ms產(chǎn)生一次中斷。注意時(shí)間與頻率的關(guān)系。

而對(duì)于高級(jí)定時(shí)器:
當(dāng)上述CNT計(jì)數(shù)溢出之后,并不是直接觸發(fā)中斷,而是觸發(fā)重復(fù)計(jì)數(shù)器(RCR)計(jì)數(shù),當(dāng)RCR計(jì)數(shù)溢出之后,才會(huì)觸發(fā)中斷服務(wù)函數(shù)。

1.3 寄存器介紹

根據(jù)stm32固件庫(kù),我們可以看出,只需要對(duì)時(shí)基初始化結(jié)構(gòu)體 TIM_TimeBaseInitTypeDef 結(jié)構(gòu)體進(jìn)行配置能,就能實(shí)現(xiàn)最基本的定時(shí)器功能。

先看該結(jié)構(gòu)體中有哪些東西:

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

再看初始化函數(shù):

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

不難發(fā)現(xiàn),使用的寄存器有:CR1、PSC、ARR、CNT、RCR、EGR。
其中CNT寄存器,在框圖中出現(xiàn)了。

1.3.1 CR1寄存器

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器
stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

位0:計(jì)數(shù)器使能,必須開啟
位1:是否允許中斷差觸發(fā)UEV,進(jìn)而更新影子寄存器
位2:設(shè)置哪些事件能觸發(fā)中斷
位4-位6:5:計(jì)數(shù)方式的設(shè)置
位7:是否使用ARR的影子寄存器

1.3.2 CNT、PSC、ARR寄存器

這三個(gè)沒(méi)什么好說(shuō)的,知道如何計(jì)算中斷時(shí)間就行。PSC和ARR的范圍為1-65535。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

1.3.3 EGR寄存器

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器
stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

對(duì)于高級(jí)和通用定時(shí)器,EGR寄存器還有很多其他功能,但是就對(duì)基本的使用來(lái)說(shuō),僅需設(shè)置這一位。

這一位什么意思呢?中斷的產(chǎn)生都是硬件自動(dòng)控制的(溢出等)。而這個(gè)是用來(lái)通過(guò)軟件的方式觸發(fā)中斷或者事件更新的,進(jìn)而將本體寄存器中的值放入到影子寄存器中。

例如,在固件庫(kù)中,初始化的時(shí)候,這一位是設(shè)置為1的。即初始化的時(shí)候,立馬觸發(fā)一個(gè)中斷,將該放的數(shù)據(jù)放到該放的位置。

1.3.4 RCR寄存器

該寄存器只有高級(jí)定時(shí)器才有。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

所以,當(dāng)用高級(jí)定時(shí)器來(lái)實(shí)現(xiàn)定時(shí)功能的時(shí)候,該位應(yīng)該設(shè)置為0,否則,定時(shí)事件會(huì)感覺(jué)很長(zhǎng)。固件庫(kù)配置默認(rèn)為0。

關(guān)于其最后兩句話,通過(guò)下圖很好理解。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

1.3.5 DIER寄存器

在定時(shí)功能下,只需要設(shè)置最后一位。

stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器
stm32定時(shí)器寄存器,【STM32重學(xué)】,stm32,定時(shí)器,寄存器

在庫(kù)函數(shù)中,TIM_ITConfig函數(shù)就是用來(lái)是遏制允許中斷的。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-606359.html

到了這里,關(guān)于【STM32學(xué)習(xí)】定時(shí)器寄存器配置、功能工作過(guò)程詳解的文章就介紹完了。如果您還想了解更多內(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í)筆記——STM32的USART相關(guān)寄存器介紹及其配置

    嵌入式學(xué)習(xí)筆記——STM32的USART相關(guān)寄存器介紹及其配置

    上一篇中,對(duì)串口做了個(gè)概述,主要是介紹了串口通信的特征,異步串行全雙工通信,然后就是結(jié)合串口的框圖梳理了一下STM32中USART的配置流程以及發(fā)送接收數(shù)據(jù)的流程,本文將接著上篇的內(nèi)容,對(duì)串口的寄存器做個(gè)介紹,然后實(shí)現(xiàn)一個(gè)簡(jiǎn)單的收發(fā)實(shí)驗(yàn)。 根據(jù)之前GPIO的經(jīng)驗(yàn)

    2024年02月05日
    瀏覽(22)
  • 野火霸天虎 STM32F407 學(xué)習(xí)筆記_2 寄存器介紹

    野火霸天虎 STM32F407 學(xué)習(xí)筆記_2 寄存器介紹

    雖然正式編程沒(méi)有必要用寄存器編程,通常都是庫(kù)函數(shù)或者 hal 庫(kù)。但是還是有必要學(xué)一下原理的。 寄存器映射 芯片視圖如下。 絲印:芯片上印的信息。型號(hào),內(nèi)核,生產(chǎn)批次等。 引腳:左上角是有小圓點(diǎn)的,從左上-左下-右下-右上逆時(shí)針看?;蛘呷绻麤](méi)有小圓點(diǎn),把絲印

    2024年02月06日
    瀏覽(56)
  • stm32的BRR寄存器和BSRR寄存器

    stm32的BRR寄存器和BSRR寄存器

    1、BRR--- ? bit ? RESET(置0)? register?? //高16位無(wú),低16位置1為0,不能寫1 2 、BSRR--- ? bit ? SET(設(shè)置1或0) ? ? ? register?? //低16位設(shè)置1為0 BSRR:用于低16位的作用是讓指定的IO口置1;而高16位的作用是讓指定的IO口置0。 ?

    2024年02月11日
    瀏覽(30)
  • 【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    1.1 TIM_InternalClockConfig 1.2 TIM_TimeBaseInit 1.3 TIM_TimeBaseInitTypeDef 1.4 TIM_ClearFlag 1.5 TIM_ITConfig 1.6 TIM_Cmd 1.7 中斷服務(wù)函數(shù) 參考程序 1.8 TIM_ETRClockMode2Config timer.h timer.c main.c timer.h timer.c main.c 09-定時(shí)器定時(shí)中斷.rar 10-定時(shí)器外部時(shí)鐘.rar 參考: 【STM32】江科大STM32學(xué)習(xí)筆記匯總

    2024年02月03日
    瀏覽(97)
  • STM32之寄存器

    STM32之寄存器

    在學(xué)習(xí)STM32之前有必要了解一下ARM架構(gòu),以下相關(guān)ARM架構(gòu)的知識(shí)來(lái)自百度百科?:? ARM架構(gòu),曾稱進(jìn)階精簡(jiǎn)指令集機(jī)器(Advanced?RISC?Machine)更早稱作Acorn RISC Machine,是一個(gè)32位精簡(jiǎn)指令集(RISC)架構(gòu)。還有基于ARM設(shè)計(jì)的派生產(chǎn)品,重要產(chǎn)品包括Marvell的XScale架構(gòu)和德州儀器的

    2024年02月22日
    瀏覽(23)
  • STM32萌新學(xué)習(xí)日志——用GPIO外設(shè)寄存器輸出點(diǎn)亮LED對(duì)比庫(kù)函數(shù)點(diǎn)亮LED——談學(xué)習(xí)感悟

    STM32萌新學(xué)習(xí)日志——用GPIO外設(shè)寄存器輸出點(diǎn)亮LED對(duì)比庫(kù)函數(shù)點(diǎn)亮LED——談學(xué)習(xí)感悟

    ????????本周學(xué)習(xí)STM32單片機(jī),由于之前學(xué)過(guò)51單片機(jī),為了便于切入,先學(xué)習(xí)了寄存器點(diǎn)亮LED燈的方法,整體思路與51單片機(jī)相似。在基本掌握后,嘗試自己構(gòu)建庫(kù)函數(shù)雛形,過(guò)程比較困難,后面開始借鑒野火官方庫(kù)函數(shù)。 ? ? ? ? 這里其實(shí)建議大家在學(xué)會(huì)構(gòu)建庫(kù)函數(shù)后

    2024年03月17日
    瀏覽(23)
  • STM32寄存器點(diǎn)亮LED燈

    STM32寄存器點(diǎn)亮LED燈

    ?這個(gè)燈是 PB5引腳 看原理圖可以看出 讓GPIOB5輸出低電平 就能點(diǎn)亮 那么我們得讓 打開控制GPIOB5的時(shí)鐘 讓GPIOB5?輸出模式 讓GPIOB5低電平 時(shí)鐘就相當(dāng)于一個(gè)閥門開關(guān),或者理解成水龍頭,你打開了 才有水出來(lái),也就是你打開才能工作。 看中文參考手冊(cè) 系統(tǒng)架構(gòu) 找到你的GPIO

    2024年02月07日
    瀏覽(35)
  • STM32 入門 —— 寄存器與 GPIO

    STM32 入門 —— 寄存器與 GPIO

    STM32 總線構(gòu)圖: 什么是寄存器 根據(jù)百度百科介紹,寄存器是中央處理器內(nèi)的組成部分。寄存器是有限存貯容量的高速存貯部件,它們可用來(lái)暫存指令、數(shù)據(jù)和地址。簡(jiǎn)單來(lái)說(shuō),寄存器就是存放東西的東西,存放的東西是指令、數(shù)據(jù)或地址 存放數(shù)據(jù)的寄存器最容易理解,不同

    2024年02月04日
    瀏覽(29)
  • 【STM32】定時(shí)器詳細(xì)學(xué)習(xí)

    【STM32】定時(shí)器詳細(xì)學(xué)習(xí)

    定時(shí)器介紹 HAL庫(kù)外設(shè)模塊設(shè)計(jì)方法 外設(shè)通用接口函數(shù)設(shè)計(jì) 定時(shí)/計(jì)數(shù)功能 時(shí)基單元 外部脈沖計(jì)數(shù) 定時(shí)器的核心就是一個(gè)計(jì)數(shù)器模塊,可以進(jìn)行加一或減一計(jì)數(shù)。每出現(xiàn)一個(gè)計(jì)數(shù)信號(hào),計(jì)數(shù)器的值就自動(dòng)加一或減一。當(dāng)計(jì)數(shù)值從0遞增到最大值或者從最大值遞減到0時(shí),定時(shí)器

    2024年02月05日
    瀏覽(19)
  • STM32學(xué)習(xí)--定時(shí)器中斷

    STM32學(xué)習(xí)--定時(shí)器中斷

    目錄 ?概述 一、STM32 通用定時(shí)器簡(jiǎn)介 1.1 STM32定時(shí)器定時(shí)原理? 1.2?STM32 通用定時(shí)器相關(guān)寄存器簡(jiǎn)介 1.3?定時(shí)器功能描述 1.4計(jì)數(shù)器模式 二、定時(shí)器中斷庫(kù)函數(shù) 2.1 步驟總結(jié) 2.2 庫(kù)函數(shù)講解 總結(jié): ????????這一章,我們將向大家介紹如何使用 STM32F1 系列 的通用定時(shí)器。 TIM

    2024年02月02日
    瀏覽(17)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包