国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32呼吸燈的實現(xiàn)

2018-06-06 10:14程文龍徐瑾孫智勇
電腦知識與技術(shù) 2018年7期
關(guān)鍵詞:示波器

程文龍 徐瑾 孫智勇

摘要:隨著科技水平的提高,ARM的應(yīng)用越來越廣泛。本文針對ARM的進一步學(xué)習(xí),探討STM32定時器產(chǎn)生PWM(脈沖寬度調(diào)制)輸出能影響LED亮度進行了實驗。PWM的應(yīng)用十分廣泛,在測量,通信,功率控制,電動機控制等許多領(lǐng)域。因此研究PWM技術(shù)具有十分重要的現(xiàn)實意義。本設(shè)計采用STM32定時器產(chǎn)生的PWM,PWM的周期即定時器定時的時間,通過計算方波的頻率,占空比,配置定時器和IO口,之后用示波器顯示相應(yīng)通道占空比的方波即可。但本實驗存在無法獨立的控制很多的LED燈

關(guān)鍵詞:STM32;呼吸燈; PWM;定時器;示波器

中圖分類號:TP271 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)07-0198-02

Abstract:With the develop of technology,ARM is used in various situations.On the intention of study on ARM, time of STM32 produce pulses PWM(width modulation) is studied in this paper PWM is the square wave which has a sure duty-cycle and frequency. application fields include measurement, communication, power control and transform, motor control, Its servo control, even some audio amplifier. Therefore it is important to research PWM technology. It is easy to use the timer of STM32 to produce PWM output. PWM is produced by the timer of STM32. The cycle of PWM is the timer is regular time. By calculating the frequency of square wave, duty-cycle, configuring the timer and IO, then use oscilloscope displayed the PWM.

Key words: STM32;LED indicator;PWM;timer;Oscilloscope

1 STM32的前景和應(yīng)用

隨著科技的發(fā)展,在現(xiàn)代化的社會電子產(chǎn)品越來越多,這也就意味著我們新一代的年輕人在享受科技給我們帶來的便利的時候,我們也要掌握一定的科學(xué)技術(shù)和基本技能。單片機與人們的生活已經(jīng)結(jié)為一體。從數(shù)字鬧鐘到電動牙刷和電動剃須刀;從車內(nèi)應(yīng)用門鎖、停車傳感器、ABS,到行車途中交通控制、雷達測速以及交通流量監(jiān)視器;從家庭和辦公應(yīng)用中的工廠自動化、照明控制(如熒光燈、鎮(zhèn)流器控制、應(yīng)急燈等),到家庭保健中的植入式心律轉(zhuǎn)復(fù)除顫器、胃窺鏡等,以及手機、火災(zāi)控制系統(tǒng)、煙霧報警器等應(yīng)用,都有單片機在其中發(fā)揮著重要作用。 個人覺得STM32在日后的產(chǎn)品應(yīng)用當(dāng)中會越來越廣泛,其高性能低功耗低價格(相對)都有很大的市場優(yōu)勢。

2 設(shè)計方案

①STM呼吸燈設(shè)計一:解析呼吸燈,指燈光設(shè)備的亮度隨著時間由暗到亮逐漸增強,再由亮到暗逐漸衰減,存在一種一起一伏的趨勢,就像在呼吸一樣。

②本設(shè)計是通過STM32控制周期為3s,及吸氣時間(亮度上升時間)為1.5;呼氣時間(亮度衰減時間)為1.5s的呼吸燈。

③方案論證要通過示波器來顯示呼吸燈頻率的變化,就是我們通常說的PWM來改變脈沖的寬度和頻率。

PWM波的頻率是某一個固定的值,但是高低電平所占比例(占空比)會根據(jù)用戶設(shè)定而變化。假設(shè)高電平燈點亮,低電平熄滅,那么在PWM波一個周期內(nèi)燈點亮的時間就等于周期*占空比。調(diào)整占空比,就可以控制LED在一個周期內(nèi)的點亮?xí)r間。由于PWM波頻率很高,超出人眼分辨速度,那么在人眼中就是連續(xù)的燈光,按照漸變占空比變化,在人眼中就可以表現(xiàn)為亮度的變化。

脈寬調(diào)制(PWM)基本原理:控制方式就是對逆變電路開關(guān)器件的通斷進行控制,使輸出端得到一系列幅值相等的脈沖,用這些脈沖來代替正弦波或所需要的波形。也就是在輸出波形的半個周期中產(chǎn)生多個脈沖,使各脈沖的等值電壓為正弦波形,所獲得的輸出平滑且低次諧波少。按一定的規(guī)則對各脈沖的寬度進行調(diào)制,即可改變逆變電路輸出電壓的大小,也可改變輸出頻率。

使用定時器來控制I/O口輸出PWM波形,從而驅(qū)動LED燈出現(xiàn)類似呼吸頻率一般的亮滅。

3 實現(xiàn)原理

這是STM32數(shù)據(jù)手冊上對TIM3通用定時器復(fù)用功能重映象的描述,假設(shè)讓PA6作為PWM輸出從圖中可以看出PA6對應(yīng)TIM3的通道1, 使能TIM3通道1的函數(shù)為TIM_OC1Init();同樣的,如果想要使能PA7,它對應(yīng)的是TIM3的通道2,那么使能通道2的函數(shù)便是:TIM_OC2Init()以此類推,需要注意,使能不同相同定時器不同通道的函數(shù)是有一點小差別的,以上都是為我們下一步的實驗做好的準(zhǔn)備。假如我們以LED作為燈光設(shè)備,由控制器輸出的PWM信號可以直接驅(qū)動LED,PWM中的低電平可以點亮LED,由于人眼瞬間看不但LED的閃爍現(xiàn)象,所以我們感覺不到它的差別,因此我們只能調(diào)節(jié)頻率,我們可以以較高頻率實現(xiàn)LED的開關(guān),及我們可以調(diào)高PWM信號的頻率,以此來實現(xiàn)LED的亮度。通過以上的思路,有如下的方法可以實現(xiàn)。

以下是固件函數(shù):

#include "stm32f10x.h"

#include "stm32f10x_gpio.h"

void RCC_Configuration(void);

void TIM_GPIO_Config(void);

void PWM_Mode_Config(void);

int main(void)

{ u8 led_fx=1;//燈亮的方向,有亮到暗,和暗到亮,呼吸燈就是這樣漸變的

u16 led_dt=0;

RCC_Configuration();

TIM_GPIO_Config();

PWM_Mode_Config();

while(1)

{ delay_nms(10);

if(led_fx==1)//

{led_dt++;}

else{led_dt--;}

if(led_dt>100)//下面程序的定時周期是100,所以led_dt加到100就自減到0,也就是pwm輸出高/低電平持續(xù)時間的長短,

led_fx=0;

if(led_dt==0)

led_fx=1;

TIM_SetCompare1(TIM4,led_dt);//把led_dt的值送到定時器4的CCR寄存器中改變占空比,就是后面提到的跳變值pulse } }

void TIM_GPIO_Config(void)//配置的是PB6端口的復(fù)用推挽輸出,因為輸出PWM波

{ GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6;

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOB,&GPIO;_InitStructure); }

void RCC_Configuration(void)

{ SystemInit();//初始化系統(tǒng)時鐘

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE); //使能端口B時鐘和復(fù)用功能時鐘

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); } //使能定時器時鐘

void PWM_Mode_Config(void)

{ u32 CCR2_Val;

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_TimeBaseStructure.TIM_Prescaler = 1; //預(yù)分頻器為1就是定時器的工作頻率為36M,否則(為0或者其他的數(shù)時,TIMclock=72M/(pres+1))為72M

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上計數(shù)

TIM_TimeBaseStructure.TIM_Period =99; //36M/(99+1)=360K

TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;

TIM_TimeBaseInit(TIM4,&TIM;_TimeBaseStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //允許輸出

TIM_OCInitStructure.TIM_Pulse = CCR2_Val; //跳變值,當(dāng)計數(shù)器的值小于此值時,輸出電平極性發(fā)生跳變,即決定占空比

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; //小于設(shè)置的跳變值時輸出低電平

TIM_OC1Init(TIM4, &TIM;_OCInitStructure);//初始化捕獲比較寄存器

TIM_OC1PreloadConfig(TIM4, TIM_OCPreload_Enable);//使能捕獲比較重裝載

TIM_ARRPreloadConfig(TIM4, ENABLE);//使能重裝載,可以連續(xù)輸出

TIM_Cmd(TIM4,ENABLE); } //使能定時器

通過上面運行我們就可以實現(xiàn)LED呼吸燈的閃爍。

4 經(jīng)驗總結(jié)

通過這次實驗是我對STM32有了更深的認(rèn)識,得出了很多道理,“心動不如行動”。一個看似簡單的事情,要動手把它做好設(shè)計出來是比較困難的,所以我們要在以后的學(xué)習(xí)和工作中要有堅2的毅力和堅定的信念。這就要求我們在平時的學(xué)習(xí)中,把課堂上所學(xué)到知識和實踐結(jié)合起來,只有這樣我們才能德才兼?zhèn)?,同時用過這次的實驗,使自己鞏固了上課老師講的知識,從而使我把理論與實踐真正結(jié)合起來。使我明白了做事情之前要有自己的想法,弄明白理論和時間是相結(jié)合的,只有把理論的知識學(xué)扎實才能實踐起來行云流水。這次的實驗過程中有許多問題,只有在認(rèn)真的分析之后知道原因所在才能解決問題的根本,每做完一次實驗都要有自己的相關(guān)總結(jié),這樣才能把實驗做得更好。在老師的教導(dǎo)下,這學(xué)期的課程設(shè)計中,我不僅培養(yǎng)了獨立思考,動手操作的能力。知道了解決問題的方法不止一種,讓我是受益匪淺。

參考文獻:

[1] 廉佐政,王海珍.基于STM32的PWM輸出實驗設(shè)計[J].實驗技術(shù)與管理,2017,34(8):137-140.

[2] 劉松斌,王海星,李碩恒.基于STM32的直流電機PWM調(diào)速系統(tǒng)[J].化工自動化及儀表,2016,43(8):834-837.

[3] 洪俊峰,卜文強,張榕鑫,等.基于STM32 PWM的正弦信號發(fā)生器設(shè)計[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2014,37(2):188-191+224.

[4] Hui-fu Zhang,Wei Kang. Design of the Data Acquisition System Based on STM32[J]. Procedia Computer Science,2013,17:.

[5] 田立東,周繼軍,秦會斌.PWM調(diào)光LED驅(qū)動器設(shè)計[J].機電工程,2012(4).

[6] 駱祖國,陳淵睿.高效LED照明驅(qū)動及智能調(diào)光電路設(shè)計[J].微處理機,2011(2).

[7] 胡山,段海龍,任淑艷,等.基于ARM的LED自適應(yīng)調(diào)光系統(tǒng)設(shè)計[J].現(xiàn)代科學(xué)儀器,2010(6).

[8] 王學(xué)文. 具有靈感的呼吸燈[N].電子報,2016-01-31(11).

猜你喜歡
示波器
一款教學(xué)示波器的Y通道設(shè)計與實現(xiàn)
可攜帶式虛擬雙蹤示波器
高速光學(xué)示波器