日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]1. TIMER輸出PWM基本概念脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱(chēng)脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。簡(jiǎn)單一點(diǎn),就是對(duì)脈沖寬度的控制。一般用

1. TIMER輸出PWM基本概念

脈沖寬度調(diào)制(PWM),是英文“Pulse Width Modulation”的縮寫(xiě),簡(jiǎn)稱(chēng)脈寬調(diào)制,是利用微處理器的數(shù)字輸出來(lái)對(duì)模擬電路進(jìn)行控制的一種非常有效的技術(shù)。簡(jiǎn)單一點(diǎn),就是對(duì)脈沖寬度的控制。一般用來(lái)控制步進(jìn)電機(jī)的速度等等。

STM32的定時(shí)器除了基本定時(shí)器TIM6和TIM7之外,其他的定時(shí)器都可以用來(lái)產(chǎn)生PWM輸出,其中高級(jí)定時(shí)器TIM1和TIM8可以同時(shí)產(chǎn)生7路的PWM輸出,而通用定時(shí)器也能同時(shí)產(chǎn)生4路的PWM輸出。

1.1 PWM輸出模式

STM32的PWM輸出有兩種模式,模式1和模式2,由TIMx_CCMRx寄存器中的OCxM位確定的(“110”為模式1,“111”為模式2)。模式1和模式2的區(qū)別如下:

110:PWM模式1-在向上計(jì)數(shù)時(shí),一旦TIMx_CNTTIMx_CCR1時(shí)通道1為無(wú)效電平(OC1REF=0),否則為有效電平(OC1REF=1)。

111:PWM模式2-在向上計(jì)數(shù)時(shí),一旦TIMx_CNTTIMx_CCR1時(shí)通道1為有效電平,否則為無(wú)效電平。

由此看來(lái),模式1和模式2正好互補(bǔ),互為相反,所以在運(yùn)用起來(lái)差別也并不太大。

而從計(jì)數(shù)模式上來(lái)看,PWM也和TIMx在作定時(shí)器時(shí)一樣,也有向上計(jì)數(shù)模式、向下計(jì)數(shù)模式和中心對(duì)齊模式,關(guān)于3種模式的具體資料,可以查看《STM32參考手冊(cè)》的“14.3.9 PWM模式”一節(jié)。

1.2 PWM輸出管腳

PWM的輸出管腳是確定好的,具體的引腳功能可以查看《STM32參考手冊(cè)》的“8.3.7 定時(shí)器復(fù)用功能重映射”一節(jié)。在此需要強(qiáng)調(diào)的是,不同的TIMx有分配不同的引腳,但是考慮到管腳復(fù)用功能,STM32提出了一個(gè)重映像的概念,就是說(shuō)通過(guò)設(shè)置某一些相關(guān)的寄存器,來(lái)使得在其他非原始指定的管腳上也能輸出PWM。但是這些重映像的管腳也是由參考手冊(cè)給出的。比如說(shuō)TIM3的第2個(gè)通道,在沒(méi)有重映像的時(shí)候,指定的管腳是PA.7,如果設(shè)置部分重映像之后,TIM3_CH2的輸出就被映射到PB.5上了,如果設(shè)置了完全重映像的話,TIM3_CH2的輸出就被映射到PC.7上了。

1.3 PWM輸出信號(hào)

PWM輸出的是一個(gè)方波信號(hào),信號(hào)的頻率是由TIMx的時(shí)鐘頻率和TIMx_ARR預(yù)分頻器所決定的,而輸出信號(hào)的占空比則是由TIMx_CRRx寄存器確定的。其公式為“占空比=(TIMx_CRRx/TIMx_ARR)*100%”,因此,可以通過(guò)向CRR中填入適當(dāng)?shù)臄?shù)來(lái)輸出自己所需的頻率和占空比的方波信號(hào)。

2.TIMER輸出PWM實(shí)現(xiàn)步驟

1.設(shè)置RCC時(shí)鐘;

2.設(shè)置GPIO時(shí)鐘;

3.設(shè)置TIMx定時(shí)器的相關(guān)寄存器;

4.設(shè)置TIMx定時(shí)器的PWM相關(guān)寄存器。

第1步需要注意的是通用定時(shí)器TIMx是由APB1提供時(shí)鐘,而GPIO則是由APB2提供時(shí)鐘。注意,如果需要對(duì)PWM的輸出進(jìn)行重映像的話,還需要開(kāi)啟引腳復(fù)用時(shí)鐘AFIO。

第2步設(shè)置GPIO時(shí)鐘時(shí),GPIO模式應(yīng)該設(shè)置為復(fù)用推挽輸出GPIO_Mode_AF_PP,如果需要引腳重映像的話,則需要用GPIO_PinRemapConfig()函數(shù)進(jìn)行設(shè)置。

第3步設(shè)置TIMx定時(shí)器的相關(guān)寄存器。

第4步設(shè)置PWM相關(guān)寄存器,首先要設(shè)置PWM模式(默認(rèn)情況下PWM是凍結(jié)的),然后設(shè)置占空比(根據(jù)前面所述公式進(jìn)行計(jì)算),再設(shè)置輸出比較極性:當(dāng)設(shè)置為High時(shí),輸出信號(hào)不反相,當(dāng)設(shè)置為L(zhǎng)ow時(shí),輸出信號(hào)反相之后再輸出。最重要是是要使能TIMx的輸出狀態(tài)和使能TIMx的PWM輸出使能。

相關(guān)設(shè)置完成之后,就可以通過(guò)TIM_Cmd()來(lái)打開(kāi)TIMx定時(shí)器,從而得到PWM輸出了。

3.TIMER輸出PWM源代碼

由于我現(xiàn)在手上的奮斗開(kāi)發(fā)板是將PB.5接到LED上,因此需要使用TIM3的CH2通道,并且要進(jìn)行引腳重映像。打開(kāi)TIM3之后,PWM輸出,使得LED點(diǎn)亮,通過(guò)改變PWM_cfg()中的占空比可以調(diào)節(jié)LED的亮度。

#include "stm32f10x_lib.h"

void RCC_cfg();

void GPIO_cfg();

void TIMER_cfg();

void PWM_cfg();

//占空比,取值范圍為0-100

int dutyfactor = 50;

int main()

{

int Temp;

RCC_cfg();

GPIO_cfg();

TIMER_cfg();

PWM_cfg();

//使能TIM3計(jì)時(shí)器,開(kāi)始輸出PWM

TIM_Cmd(TIM3, ENABLE);

while(1);

}

void RCC_cfg()

{

//定義錯(cuò)誤狀態(tài)變量

ErrorStatus HSEStartUpStatus;

//將RCC寄存器重新設(shè)置為默認(rèn)值

RCC_DeInit();

//打開(kāi)外部高速時(shí)鐘晶振

RCC_HSEConfig(RCC_HSE_ON);

//等待外部高速時(shí)鐘晶振工作

HSEStartUpStatus = RCC_WaitForHSEStartUp();

if(HSEStartUpStatus == SUCCESS)

{

//設(shè)置AHB時(shí)鐘(HCLK)為系統(tǒng)時(shí)鐘

RCC_HCLKConfig(RCC_SYSCLK_Div1);

//設(shè)置高速AHB時(shí)鐘(APB2)為HCLK時(shí)鐘

RCC_PCLK2Config(RCC_HCLK_Div1);

//設(shè)置低速AHB時(shí)鐘(APB1)為HCLK的2分頻

RCC_PCLK1Config(RCC_HCLK_Div2);

//設(shè)置FLASH代碼延時(shí)

FLASH_SetLatency(FLASH_Latency_2);

//使能預(yù)取指緩存

FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

//設(shè)置PLL時(shí)鐘,為HSE的9倍頻 8MHz * 9 = 72MHz

RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);

//使能PLL

RCC_PLLCmd(ENABLE);

//等待PLL準(zhǔn)備就緒

while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

//設(shè)置PLL為系統(tǒng)時(shí)鐘源

RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

//判斷PLL是否是系統(tǒng)時(shí)鐘

while(RCC_GetSYSCLKSource() != 0x08);

}

//開(kāi)啟TIM3的時(shí)鐘

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);

//開(kāi)啟GPIOB的時(shí)鐘和復(fù)用功能

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);

}

void GPIO_cfg()

{

GPIO_InitTypeDef GPIO_InitStructure;

//部分映射,將TIM3_CH2映射到PB5

// GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);

//選擇引腳5

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;

//輸出頻率最大50MHz

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

//復(fù)用推挽輸出

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOB,&GPIO_InitStructure);

}

void TIMER_cfg()

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

//重新將Timer設(shè)置為缺省值

TIM_DeInit(TIM3);

//采用內(nèi)部時(shí)鐘給TIM3提供時(shí)鐘

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

特朗普集團(tuán)近日取消了其新推出的T1智能手機(jī)“將在美國(guó)制造”的宣傳標(biāo)語(yǔ),此舉源于外界對(duì)這款手機(jī)能否以當(dāng)前定價(jià)在美國(guó)本土生產(chǎn)的質(zhì)疑。

關(guān)鍵字: 特朗普 蘋(píng)果 AI

美國(guó)總統(tǒng)特朗普在公開(kāi)場(chǎng)合表示,他已要求蘋(píng)果公司CEO蒂姆·庫(kù)克停止在印度建廠,矛頭直指該公司生產(chǎn)多元化的計(jì)劃。

關(guān)鍵字: 特朗普 蘋(píng)果 AI

4月10日消息,據(jù)媒體報(bào)道,美國(guó)總統(tǒng)特朗普宣布,美國(guó)對(duì)部分貿(mào)易伙伴暫停90天執(zhí)行新關(guān)稅政策,同時(shí)對(duì)中國(guó)的關(guān)稅提高到125%,該消息公布后蘋(píng)果股價(jià)飆升了15%。這次反彈使蘋(píng)果市值增加了4000多億美元,目前蘋(píng)果市值接近3萬(wàn)...

關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

3月25日消息,據(jù)報(bào)道,當(dāng)?shù)貢r(shí)間3月20日,美國(guó)總統(tǒng)特朗普在社交媒體平臺(tái)“真實(shí)社交”上發(fā)文寫(xiě)道:“那些被抓到破壞特斯拉的人,將有很大可能被判入獄長(zhǎng)達(dá)20年,這包括資助(破壞特斯拉汽車(chē))者,我們正在尋找你?!?/p> 關(guān)鍵字: 特朗普 AI 人工智能 特斯拉

1月22日消息,剛剛,新任美國(guó)總統(tǒng)特朗普放出重磅消息,將全力支持美國(guó)AI發(fā)展。

關(guān)鍵字: 特朗普 AI 人工智能

特朗普先生有兩件事一定會(huì)載入史冊(cè),一個(gè)是筑墻,一個(gè)是挖坑。在美墨邊境筑墻的口號(hào)確保邊境安全,降低因非法移民引起的犯罪率過(guò)高問(wèn)題;在中美科技產(chǎn)業(yè)之間挖坑的口號(hào)也是安全,美國(guó)企業(yè)不得使用對(duì)美國(guó)國(guó)家安全構(gòu)成威脅的電信設(shè)備,總統(tǒng)...

關(guān)鍵字: 特朗普 孤立主義 科技產(chǎn)業(yè)

據(jù)路透社1月17日消息顯示,知情人士透露,特朗普已通知英特爾、鎧俠在內(nèi)的幾家華為供應(yīng)商,將要撤銷(xiāo)其對(duì)華為的出貨的部分許可證,同時(shí)將拒絕其他數(shù)十個(gè)向華為供貨的申請(qǐng)。據(jù)透露,共有4家公司的8份許可被撤銷(xiāo)。另外,相關(guān)公司收到撤...

關(guān)鍵字: 華為 芯片 特朗普

曾在2018年時(shí)被美國(guó)總統(tǒng)特朗普稱(chēng)作“世界第八奇跡”的富士康集團(tuán)在美國(guó)威斯康星州投資建設(shè)的LCD顯示屏工廠項(xiàng)目,如今卻因?yàn)楦皇靠祵㈨?xiàng)目大幅縮水并拒絕簽訂新的合同而陷入了僵局。這也導(dǎo)致富士康無(wú)法從當(dāng)?shù)卣抢铽@得約40億美...

關(guān)鍵字: 特朗普 富士康

今年5月,因自己發(fā)布的推文被貼上“無(wú)確鑿依據(jù)”標(biāo)簽而與推特發(fā)生激烈爭(zhēng)執(zhí)后,美國(guó)總統(tǒng)特朗普簽署了一項(xiàng)行政令,下令要求重審《通信規(guī)范法》第230條。

關(guān)鍵字: 谷歌 facebook 特朗普

眾所周知,寄往白宮的所有郵件在到達(dá)白宮之前都會(huì)在他地進(jìn)行分類(lèi)和篩選。9月19日,根據(jù)美國(guó)相關(guān)執(zhí)法官員的通報(bào),本周早些時(shí)候,執(zhí)法人員截獲了一個(gè)寄給特朗普總統(tǒng)的包裹,該包裹內(nèi)包含蓖麻毒蛋白。

關(guān)鍵字: 美國(guó) 白宮 特朗普
關(guān)閉