娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年06月21日(星期六)

2021年06月21日 | stm32學(xué)習(xí)之基本定時(shí)器--TIM

發(fā)布者:光明2599 來源: eefocus關(guān)鍵字:stm32  基本定時(shí)器  TIM 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

  stm32f1系列,有基本定時(shí)器、通用定時(shí)器、高級(jí)定時(shí)器三類TIM定時(shí)器。其中,TIM6/7是本文要講的基本定時(shí)器。


  基本定時(shí)器TIM6/7是16位的只能向上計(jì)數(shù)的定時(shí)器,只能用于定時(shí)。而通用定時(shí)器和高級(jí)定時(shí)器有更多的功能,如還可以進(jìn)行輸出比較、輸入捕捉等功能,相關(guān)的介紹會(huì)寫在后面的文章,這里只講基本定時(shí)器。


  先看看基本定時(shí)器的框圖,如圖24-1。

圖24-1


  時(shí)鐘源


  我們查閱參考手冊RCC章節(jié)的時(shí)鐘樹可以知道,RCC的定時(shí)器時(shí)鐘TIMxCLK,即內(nèi)部時(shí)鐘CK_INT是由APB1預(yù)分頻器分頻后提供。如圖24-2所示,如果APB1預(yù)分頻系數(shù)為1,,則頻率不變,否則頻率為2倍。即此時(shí)用于分頻的APB1的預(yù)分頻系數(shù)為2,所以TIMxCLK = 36 * 2 = 72MHz。

圖24-2


  計(jì)數(shù)器時(shí)鐘


  如圖24-1的框圖,計(jì)數(shù)器時(shí)鐘由內(nèi)部時(shí)鐘CK_INT提供,經(jīng)過PSC預(yù)分頻器后得到CK_CNT。PSC是一個(gè)16位的預(yù)分頻器,可以對定時(shí)器時(shí)鐘TIMxCLK進(jìn)行1~65536之間的任何一個(gè)數(shù)進(jìn)行分頻。分頻后的CK_CNT值的計(jì)算在參考手冊TIMx_PSC寄存器描述里有提到,如圖24-3。

圖24-3


  即CK_CNT = CK_PSC/(PSC[15:0]+1)。


  計(jì)數(shù)器


  計(jì)數(shù)器CNT是一個(gè)16位的計(jì)數(shù)器,只能往上計(jì)數(shù),最大計(jì)數(shù)值為65535。


  自動(dòng)重裝載寄存器TIMx_ARR


  TIMx_ARR寄存器里存著最大的計(jì)數(shù)值,當(dāng)計(jì)數(shù)到該值時(shí),會(huì)產(chǎn)生中斷。當(dāng)然了你得使能了中斷才可以。


  定時(shí)時(shí)間計(jì)算


  計(jì)一個(gè)數(shù)的時(shí)間是1/CK_CNT,產(chǎn)生一次中斷的時(shí)間為(ARR+1)/CK_CNT。如果在中斷服務(wù)程序里設(shè)置一個(gè)變量time用于記錄中斷次數(shù),則定時(shí)時(shí)間為:(ARR+1)/CK_CNT*time。


  TIM_TimeBaseInitTypeDef


  如圖24-4為基本定時(shí)器TIM_TimeBaseInitTypeDef結(jié)構(gòu)體定義。

圖24-4


  TIM_Prescaler:指定定時(shí)器預(yù)分頻器數(shù)值,由TIMx_PSC寄存器配置,可設(shè)置范圍為0x0000~0xFFFF,即0~65535;


  TIM_CounterMode:計(jì)數(shù)模式,可分為向上計(jì)數(shù)、向下計(jì)數(shù)以及三種中心對齊模式。而基本定時(shí)器只能向上計(jì)數(shù);


  TIM_Period:計(jì)數(shù)器周期,即自動(dòng)重裝載寄存器TIMx_ARR的值,在事件生成時(shí)更新到影子寄存器,由TIMx_CR1寄存器的ARPE位配置是否使能緩沖;


  TIM_ClockDivision:時(shí)鐘分頻,配置定時(shí)器時(shí)鐘CK_INT頻率與數(shù)字濾波器采樣時(shí)鐘頻率分頻比,基本定時(shí)器沒有這個(gè)功能,不用設(shè)置;


  TIM_RepetitionCounter:重復(fù)計(jì)數(shù)器,屬于高級(jí)控制寄存器專用寄存器位,利用它可以很容易控制輸出PWM個(gè)數(shù),這里不用設(shè)置。


  定時(shí)1s實(shí)驗(yàn)


  例如,需要做一個(gè)1s的定時(shí),CK_PSC=72MHz,則PSC=71,那么CK_CNT=1MHz,


  計(jì)一個(gè)數(shù)時(shí)間:1/CK_CNT = 1/1MHz = 1us,


  中斷一次的時(shí)間:(ARR+1)/CK_CNT = (999+1)/1MHz = 1ms,


  則定時(shí)時(shí)間:(ARR+1)/CK_CNT*time = 1ms*1000 = 1s


  我們用led的亮滅狀態(tài)變化來展示1s的定時(shí)。


  初始化TIM_TimeBaseInitTypeDef


  前文提到的TIM_TimeBaseInitTypeDef結(jié)構(gòu)體有5個(gè)成員,但基本定時(shí)器TIM6/7只用到了TIM_Prescaler和TIM_Period這兩個(gè)成員,其他三個(gè)是通用定時(shí)器和高級(jí)定時(shí)器才會(huì)用到的。


 /**


  * @brief 基本定時(shí)器配置


  * @param 無


  * @retval 無


  */


  static void BASIC_TIM_Mode_Config(void)


  {


  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;


  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM6, ENABLE); // 內(nèi)部時(shí)鐘72MHz


  TIM_TimeBaseStructure.TIM_Period = 999; // 自動(dòng)重裝載寄存器的值


  TIM_TimeBaseStructure.TIM_Prescaler= 71; // 預(yù)分頻器數(shù)值


  TIM_TimeBaseInit(TIM6, &TIM_TimeBaseStructure);


  TIM_ClearFlag(TIM6, TIM_FLAG_Update); // 清除計(jì)數(shù)器中斷標(biāo)志位


  TIM_ITConfig(TIM6, TIM_IT_Update, ENABLE);


  TIM_Cmd(TIM6, ENABLE);


  }



  中斷優(yōu)先級(jí)配置


  有關(guān)中斷配置相關(guān)已經(jīng)在之前的文章介紹過,有不清楚的地方可移步閱讀。這里只說幾個(gè)配置的關(guān)鍵點(diǎn)。可配置中斷優(yōu)先級(jí)分組為0,即0位搶占優(yōu)先級(jí),4位子優(yōu)先級(jí)。配置中斷源為TIM6_IRQn。


/**


  * @brief 中斷優(yōu)先級(jí)配置


  * @param 無


  * @retval 無


  */


  static void BASIC_TIM_NVIC_Config(void)


  {


  NVIC_InitTypeDef NVIC_InitStructure;


  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);


  NVIC_InitStructure.NVIC_IRQChannel = TIM6_IRQn;


  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;


  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;


  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;


  NVIC_Init(&NVIC_InitStructure);


  }



  中斷函數(shù)


  中斷函數(shù)在stm32f10x_it.c文件里配置。



extern volatile uint32_t time; // 該變量定義在main()函數(shù)里


  void TIM6_IRQHandler(void)


  {


  if(TIM_GetITStatus(TIM6, TIM_IT_Update) != RESET)


  {


  time++; // 每中斷一次,time值加1,中斷一次時(shí)間為1ms,需要中斷1000次才可定時(shí)1s,即time值為1000


  TIM_ClearITPendingBit(TIM6, TIM_FLAG_Update);


  }


  }


  最后在main()函數(shù)里調(diào)用led和定時(shí)器的初始化配置函數(shù),在一個(gè)循環(huán)里判斷time變量的值是否為1000,如果已經(jīng)達(dá)到1000,則led燈狀態(tài)變化(亮或滅)一次,并且time變量值重賦為0,以便繼續(xù)判斷及定時(shí)。


關(guān)鍵字:stm32  基本定時(shí)器  TIM 引用地址:stm32學(xué)習(xí)之基本定時(shí)器--TIM

上一篇:單片機(jī)學(xué)習(xí)筆記之--SPI通信基礎(chǔ)
下一篇:144個(gè)stm32開發(fā)相關(guān)的問題,看你了解幾個(gè)

推薦閱讀

#include<reg52.h> #define uchar unsigned char #define uint unsigned int #define DELAY 1000 void delay(uint z) //1ms { uint x,y; for(x=z;x>0;x--) for(y=111;y>0;y--); } void main() { uchar i,dt; EA=1; //開總中斷 EX1=1; //開外部中斷1 // I...
下面這張圖來自“2016年中國(深圳)集成電路創(chuàng)新應(yīng)用高峰論壇” 上清華大學(xué)微納電子學(xué)系教授魏少軍的一張PPT。2015年的中國10大設(shè)計(jì)企業(yè)中,展訊通信排第二,銳迪科排第六,前后相望。 這應(yīng)該是兩家公司最后一次獨(dú)立出現(xiàn)在一個(gè)榜單中了,不是因?yàn)槟硞€(gè)公司不景氣被踢出榜單,而是因?yàn)樵?016年,紫光展銳成立,展訊和銳迪科被歸屬到紫光展銳旗下,前者主攻...
2020年06月18日浙江濱芯科技有限公司(以下簡稱“濱芯科技”)在杭州濱江正式發(fā)布國內(nèi)首款自主可控25GE BX01001網(wǎng)卡芯片和BX02000系列標(biāo)準(zhǔn)網(wǎng)卡,且將于2020年07月開始給客戶送樣測試并接受訂單。BX01001網(wǎng)卡芯片支持CPU卸載、虛擬化、DPDK和RoCE V2等,并滿足5G應(yīng)用要求IEEE 1588 V2。BX02000系列網(wǎng)卡已經(jīng)適配了眾多x86和ARM架構(gòu)服務(wù)器以及CentOS等主...
6月17日-19日,第11屆中國汽車論壇在上海嘉定舉辦,新能源汽車發(fā)展依然成為焦點(diǎn)。中國汽車工業(yè)協(xié)會(huì)副總工程師許海東在論壇上表示,經(jīng)調(diào)整后預(yù)測,今年國內(nèi)汽車市場整體增幅由之前的4%調(diào)整到6.5%,其中,新能源車銷量將超200萬輛。  中國汽車工業(yè)協(xié)會(huì)公布的數(shù)據(jù)顯示,今年1-5月,我國新能源汽車產(chǎn)銷分別完成96.7萬輛和95萬輛,同比均增長2.2倍。而截至今...

史海拾趣

問答坊 | AI 解惑

AVR單片機(jī)

AVR單片機(jī)C語言庫…

查看全部問答∨

說說你為啥是用Linux?

如題,請大家說說自己學(xué)習(xí)Linux的理由。 我純粹是工作需要。…

查看全部問答∨

WinCE6 SD 卡驅(qū)動(dòng)?

驅(qū)動(dòng)運(yùn)行輸出 FSDMGR!StoreDisk_t::MountStore:Opened the Store\"Dsk1\" hstore=0xd0970d90 FSDMGR!StoreDisk_t::MountStore:Genometry:NumSec=991232 BytesPerSec=512 FreeSec=0 BiggestGreatable=0 WinCE中沒有SD卡的盤符,可能是驅(qū)動(dòng)問題,還 ...…

查看全部問答∨

FileMapping讀取size<=4096的文件后異常!

步驟: 1) FileMapping讀取size 4096的文件2 3) FileMapping讀取另一個(gè)文件3, MapViewOfFile()返回地址中的內(nèi)容是文件2的. 不知道是不是driver層的問題?…

查看全部問答∨

軟硬件在現(xiàn)代生產(chǎn)生活中都應(yīng)用在哪些方面?請舉幾種實(shí)際應(yīng)用吧!

軟硬件在現(xiàn)代生產(chǎn)生活中都應(yīng)用在哪些方面?請舉幾種實(shí)際應(yīng)用吧!…

查看全部問答∨

【低功耗】可編程邏輯陣列減少毛刺的低功耗布線算法

隨著可編程邏輯門陣列(FPGA,F(xiàn)ield Programmanle Gate Array)應(yīng)用的不斷普及,便攜式設(shè)備和無線設(shè)備的涌現(xiàn),過去對于FPGA主要關(guān)心的速度、單片容量、費(fèi)用以及可靠性等,現(xiàn)在對于低功耗FPGA的需 求,與速度、容量、費(fèi)用等到了一樣的高度,成為FPG ...…

查看全部問答∨

zigbee開發(fā)協(xié)議棧怎么學(xué)習(xí)

想請高手指點(diǎn)下 1)開發(fā)zigbee協(xié)議棧要掌握到什么程度? 2)z-stack2007中有個(gè)GenericAPP應(yīng)用例子,關(guān)于綁定那里不太明白,希望能指點(diǎn)下,在處理函數(shù)里面主要 3)要開發(fā)一些應(yīng)用,是不是還要了解開發(fā)板硬件方面的東西? …

查看全部問答∨

數(shù)組定義到SRAM中

請問各位,如何將數(shù)組定義到外擴(kuò)的SRAM中?定義的程序代碼能簡單寫一下嗎?謝謝…

查看全部問答∨

關(guān)于定時(shí)器的問題

msp430f149的同一個(gè)定時(shí)器能不能同時(shí)工作在捕獲和比較模式下?哪位高手知道,出來討論一下…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章
電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 广平县| 安岳县| 东兴市| 大邑县| 曲松县| 长子县| 华宁县| 迭部县| 绍兴市| 句容市| 治县。| 广安市| 张掖市| 财经| 深泽县| 苏州市| 新干县| 黄梅县| 汝南县| 宜黄县| 长泰县| 苏州市| 博客| 高平市| 阿合奇县| 龙海市| 承德县| 博爱县| 漳平市| 宁晋县| 石阡县| 彰化县| 措勤县| 大安市| 清原| 曲沃县| 临沧市| 沙洋县| 宜兰县| 湄潭县| 慈利县|