www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]STM32共有8個(gè)定時(shí)器:定時(shí)器種類位數(shù)模式特殊應(yīng)用場(chǎng)景高級(jí)定時(shí)器TIME1、TIME816位向上、向下、向上/下PWM點(diǎn)擊控制通用定時(shí)器TIME2~TIME516位向上、向下、向上/下定時(shí)計(jì)數(shù),PWM輸出,輸入捕獲,輸出比較基本定時(shí)器TIM

STM32共有8個(gè)定時(shí)器:

定時(shí)器種類位數(shù)模式特殊應(yīng)用場(chǎng)景高級(jí)定時(shí)器TIME1、TIME816位向上、向下、向上/下PWM點(diǎn)擊控制通用定時(shí)器TIME2~TIME516位向上、向下、向上/下定時(shí)計(jì)數(shù),PWM輸出,輸入捕獲,輸出比較基本定時(shí)器TIME6、TIME716位向上、向下、向上/下驅(qū)動(dòng)DAC

通用定時(shí)器功能:

位于低速的APB1總線上(APB1)

16 位向上、向下、向上/向下(中心對(duì)齊)計(jì)數(shù)模式,自動(dòng)裝載計(jì)數(shù)器(TIMx_CNT)。

16 位可編程(可以實(shí)時(shí)修改)預(yù)分頻器(TIMx_PSC),計(jì)數(shù)器時(shí)鐘分頻。

4 個(gè)獨(dú)立通道(TIMx_CH1~4),這些通道可以用來作為:輸入捕獲、輸出比較、PWM 生成(邊緣或中間對(duì)齊模式)、單脈沖模式輸出 。

可使用外部信號(hào)(TIMx_ETR)控制定時(shí)器和定時(shí)器互連(可以用 1 個(gè)定時(shí)器控制另外一個(gè)定時(shí)器)的同步電路。

如下事件發(fā)生時(shí)產(chǎn)生中斷/DMA(6個(gè)獨(dú)立的IRQ/DMA請(qǐng)求生成器): 更新:計(jì)數(shù)器向上溢出/向下溢出,計(jì)數(shù)器初始化(通過軟件或者內(nèi)部/外部觸發(fā)) 、觸發(fā)事件(計(jì)數(shù)器啟動(dòng)、停止、初始化或者由內(nèi)部/外部觸發(fā)計(jì)數(shù)) 、輸入捕獲 、輸出比較 等。

通用定時(shí)器時(shí)鐘CK_INT=2*36M=72M
向上計(jì)數(shù)模式:計(jì)數(shù)器從0計(jì)數(shù)到自動(dòng)加載值(TIMx_ARR),然后重新從0開始計(jì)數(shù)并且產(chǎn)生一個(gè)計(jì)數(shù)器溢出事件。

程序要求:
通過定時(shí)器中斷配置,每500ms中斷一次,然后中斷服務(wù)函數(shù)中控制LED實(shí)現(xiàn)LED1狀態(tài)取反(閃爍)。

Tout(溢出時(shí)間)=(ARR+1)(PSC+1)/Tclk

timer.c

#include"timer.h"#include"led.h"http://通用定時(shí)器3中斷初始化//這里時(shí)鐘選擇為APB1的2倍,而APB1為36M//arr:自動(dòng)重裝值。//psc:時(shí)鐘預(yù)分頻數(shù)//這里使用的是定時(shí)器3!voidTIM3_Int_Init(u16arr,u16psc){TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;NVIC_InitTypeDefNVIC_InitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//時(shí)鐘使能//定時(shí)器TIM3初始化TIM_TimeBaseStructure.TIM_Period=arr;//設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler=psc;//設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;//設(shè)置時(shí)鐘分割:TDTS=Tck_timTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上計(jì)數(shù)模式TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//根據(jù)指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);//使能指定的TIM3中斷,允許更新中斷//中斷優(yōu)先級(jí)NVIC設(shè)置NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;//TIM3中斷NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//先占優(yōu)先級(jí)0級(jí)NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//從優(yōu)先級(jí)3級(jí)NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//IRQ通道被使能NVIC_Init(&NVIC_InitStructure);//初始化NVIC寄存器TIM_Cmd(TIM3,ENABLE);//使能TIMx}//定時(shí)器3中斷服務(wù)程序voidTIM3_IRQHandler(void)//TIM3中斷{if(TIM_GetITStatus(TIM3,TIM_IT_Update)!=RESET)//檢查TIM3更新中斷發(fā)生與否{TIM_ClearITPendingBit(TIM3,TIM_IT_Update);//清除TIMx更新中斷標(biāo)志LED1=!LED1;}}12345678910111213141516171819202122232425262728293031323334353637
PWM輸出

工作過程:

CCR1:捕獲比較(值)寄存器(x=1,2,3,4):設(shè)置比較值。
CCMR1: OC1M[2:0]位:
對(duì)于PWM方式下,用于設(shè)置PWM模式1【110】或者PWM模式2【111】
模式1:計(jì)數(shù)值小于CCR1值為有效電平
模式2:計(jì)數(shù)值大于CCR1值為有效電平
CCER:CC1P位:輸入/捕獲1輸出極性。0:高電平有效,1:低電平有效。
CCER:CC1E位:輸入/捕獲1輸出使能。0:關(guān)閉,1:打開。

PWM輸出配置步驟:

1、使能定時(shí)器3和相關(guān)IO口時(shí)鐘。

使能定時(shí)器3時(shí)鐘:RCC_APB1PeriphClockCmd();
使能GPIOB時(shí)鐘:RCC_APB2PeriphClockCmd();

2、初始化IO口為復(fù)用功能輸出。函數(shù):GPIO_Init();

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

3、這里我們是要把PB5用作定時(shí)器的PWM輸出引腳,所以要重映射配置,

所以需要開啟AFIO時(shí)鐘。同時(shí)設(shè)置重映射。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

4、初始化定時(shí)器:ARR,PSC等:TIM_TimeBaseInit();
5、初始化輸出比較參數(shù):TIM_OC2Init();
6、使能預(yù)裝載寄存器:

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

7、使能定時(shí)器。TIM_Cmd();
8、不斷改變比較值CCRx,達(dá)到不同的占空比效果:TIM_SetCompare2();

程序要求:

使用定時(shí)器3的PWM功能,輸出占空比可變的PWM波,用來驅(qū)動(dòng)LED燈,從而達(dá)到LED【PB5]亮度由暗變亮,又從亮變暗,如此循環(huán)。

timer.c

voidTIM3_PWM_Init(u16arr,u16psc){//定義結(jié)構(gòu)體變量GPIO_InitTypeDefGPIO_InitStructure;TIM_TimeBaseInitTypeDefTIM_TimeBaseStructure;TIM_OCInitTypeDefTIM_OCInitStructure;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);//使能定時(shí)器3時(shí)鐘RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB"RCC_APB2Periph_AFIO,ENABLE);//使能GPIO時(shí)鐘和AFIO復(fù)用功能模塊時(shí)鐘GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3,ENABLE);//Timer3部分重映射TIM3_CH2->PB5//GPIO初始化,設(shè)置該引腳為復(fù)用輸出功能,輸出TIM3CH2的PWM脈沖波形GPIOB.5GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5;//TIM_CH2GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure);//初始化TIM3TIM_TimeBaseStructure.TIM_Period=arr;//設(shè)置在下一個(gè)更新事件裝入活動(dòng)的自動(dòng)重裝載寄存器周期的值TIM_TimeBaseStructure.TIM_Prescaler=psc;//設(shè)置用來作為TIMx時(shí)鐘頻率除數(shù)的預(yù)分頻值TIM_TimeBaseStructure.TIM_ClockDivision=0;//設(shè)置時(shí)鐘分割:TDTS=Tck_timTIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;//TIM向上計(jì)數(shù)模式TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//根據(jù)TIM_TimeBaseInitStruct中指定的參數(shù)初始化TIMx的時(shí)間基數(shù)單位//初始化TIM3Channel2PWM模式TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;//設(shè)置PWM模式2TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比較輸出使能TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//高電平有效TIM_OC2Init(TIM3,&TIM_OCInitStructure);//根據(jù)T指定的參數(shù)初始化外設(shè)TIM3OC2TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);//使能TIM3在CCR2上的預(yù)裝載寄存器TIM_Cmd(TIM3,ENABLE);//使能TIM3}123456789101112131415161718192021222324252627282930

main.c

intmain(void){u16led0pwmval=0;u8dir=1;delay_init();//延時(shí)函數(shù)初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)uart_init(115200);//串口初始化為115200LED_Init();//LED端口初始化TIM3_PWM_Init(899,0);//不分頻。PWM頻率=72000000/900=80Khzwhile(1){delay_ms(10);if(dir)led0pwmval++;elseled0pwmval--;if(led0pwmval>300)dir=0;if(led0pwmval==0)dir=1;TIM_SetCompare2(TIM3,led0pwmval);//設(shè)置占空比}}12345678910111213141516171819
輸入捕獲:

輸入捕獲的一般配置步驟:
① 初始化定時(shí)器和通道對(duì)應(yīng)IO的時(shí)鐘。
② 初始化IO口,模式為輸入:GPIO_Init();

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉