那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于stm32的PWM輸出呼吸燈(包括stm32呼吸燈代碼)

ss ? 來源:網絡整理 ? 2018-03-28 16:23 ? 次閱讀

基于stm32的pwm呼吸燈

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

硬件電路圖:

基于stm32的pwm呼吸燈

我的收獲:

基于stm32的pwm呼吸燈

這是STM32數據手冊上對TIM3通用定時器復用功能重映象的描述,假設讓PA6作為PWM輸出,從圖中可以看出PA6對應TIM3的通道1,

使能TIM3通道1的函數為

TIM_OC1Init();1

同樣的,如果想要使能PA7,它對應的是TIM3的通道2,那么使能通道2的函數便是:

TIM_OC2Init()1

以此類推,需要注意,使能不同相同定時器不同通道的函數是有一點小差別的,防止在程序中調用TIM_OC1Init()函數來使能TIM3通道2這種情況的發生。

基于stm32的pwm呼吸燈

注意看這里,假設使用的是TIM3的通道1,那么這里就要寫成

TIM3-》CCR11

類似的如果用TIM3定時器的通道2,這里就要相應的改為

TIM3-》CCR21

這同樣是為了防止本來計劃使用的是TIM3的通道1,反而在這里自擺烏龍寫為了TIM-》CCR2的情況,這樣的錯誤一般很隱蔽,不容易查找。

相應的程序已經上傳,但是不知道為什么在這里無法顯示程序的下載地址,需要下載可以去我的資源里下載。

工程文件為

Progect–》RVMDK(uv4)–》iSO_STM32

基于stm32的pwm呼吸燈

STM32PWM輸出實現LED燈漸亮漸滅程序:

/**說明:

*PA0:KEY1;PA1:KEY2;

*PA2:LED1;PA3:LED2;

*PA9:USART1_TX;PA10:USART1_RX

*/

#include “stm32f10x.h”

#include “stm32f10x_rcc.h”

#include “stm32f10x_gpio.h”

#include “stm32f10x_tim.h”

#include “stm32f10x_pwr.h”

#include “stm32f10x_exti.h”

#include “system_stm32f10x.h”

#include “misc.h”

void RCC_Configuration(void);

void GPIO_Configuration(void);

void TIM2_Configuration(void);

void delay_ms(u16 time);

int main()

{

u8 led_fx=1;

u16 led_dt=0;

RCC_Configuration();

GPIO_Configuration();

TIM2_Configuration();

while(1)

{

delay_ms(10);

if(led_fx==1)

{

led_dt++;

}else{

led_dt--;

}

if(led_dt》100) led_fx=0;//可以和初始值一樣

if(led_dt==0) led_fx=1;

TIM_SetCompare3(TIM2,led_dt);//通道3沒有重影像是PA2對應LED1

TIM_SetCompare4(TIM2,led_dt);//通道4沒有重影像是PA3對應LED2

}

}

void RCC_Configuration(void)

{

SystemInit();

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);

//GPIO_AFIODeInit();和下面相同效果,可以查看源碼證明

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

}

void GPIO_Configuration(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

//GPIO_PinRemapConfig(GPIO_PartialRemap2_TIM2,ENABLE);//端口映射函數

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_3;//GPIO_Pin_3對應channel3,主函數改為:TIM_SetCompare3

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_Init(GPIOA, &GPIO_InitStructure);

}

void TIM2_Configuration(void)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_DeInit(TIM2);

TIM_InternalClockConfig(TIM2);

//定時器初始化

TIM_TimeBaseStructure.TIM_Period = 100-1;//初始值是100,2MHz=2000KHz,2MHz/100=0.02MHz,所有周期T=1/0.02MHz=50us,示波器顯示周期應該為50us

TIM_TimeBaseStructure.TIM_Prescaler = 36-1;//36倍分頻,72MHz/36=2MHz

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

//PWM初始化

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = 50;//占空比值是50,所以占空比是:50/100=50%

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

TIM_OC3Init(TIM2,&TIM_OCInitStructure);

TIM_OCInitStructure.TIM_Pulse = 20;

TIM_OC4Init(TIM2,&TIM_OCInitStructure);

//TIM_OC3PreloadConfig(TIM2,TIM_OCPreload_Enable);

//TIM_ARRPreloadConfig(TIM2, ENABLE);

TIM_Cmd(TIM2,ENABLE);

TIM_CtrlPWMOutputs(TIM2,ENABLE);

}

void delay_ms(u16 time)

{

u16 i=0;

while(time--)

{

i=12000;

while(i--);

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • PWM
    PWM
    +關注

    關注

    114

    文章

    5198

    瀏覽量

    214874
  • STM32
    +關注

    關注

    2272

    文章

    10923

    瀏覽量

    357549
  • 呼吸燈
    +關注

    關注

    10

    文章

    111

    瀏覽量

    42808
收藏 人收藏

    評論

    相關推薦

    基于stm32PWM呼吸工程分享

    使用pwm波調整led的亮度,其中led的文件包含在附件里面,代碼如下:通過TIM3通用定時器的CH1通道輸出一個PWM波,并調整
    發表于 07-02 07:51

    基于stm32PWM呼吸工程分享

    使用pwm波調整led的亮度,其中led的文件包含在附件里面,代碼如下:通過TIM3通用定時器的CH1通道輸出一個PWM波,并調整
    發表于 07-06 07:37

    怎么通過PWM來實現呼吸

    說下我是怎么通過這個PWM來實現呼吸的。硬件的準備就不說了,想實現呼吸的你這個硬件配置肯定是莫得問題。我重點說下這個
    發表于 08-11 06:17

    STM32Cube如何配置PWM呼吸

    STM32Cube如何配置PWM呼吸
    發表于 11-23 07:17

    基于stm32 f103的pwm呼吸程序代碼分享

    基于stm32 f103的pwm呼吸程序代碼分享
    發表于 12-14 07:52

    PWM實現呼吸的應用

    stm32實現PWM最簡單方法前言一、PWM概念二、PWM應用輸出比較功能框圖三、PWM
    發表于 01-21 13:18

    STM32呼吸的原理是什么

    前段時間學習stm32的時候就做過呼吸實驗,瀏覽了一些博客后,做下總結呼吸原理其實是利用pwm
    發表于 02-21 07:26

    STM32實現PWM呼吸的程序合集免費下載

    本文檔的主要內容詳細介紹的是STM32實現PWM呼吸的程序合集免費下載。
    發表于 03-19 08:00 ?16次下載
    <b class='flag-5'>STM32</b>實現<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的程序合集免費下載

    STM32_PWM呼吸

    全面屏發展,因此很多手機取消了呼吸這一功能,取而代之的是息屏顯示)2、什么是PWM?PWM:Pulse Width Modulation,脈沖寬度調制,是利用微處理器的數字
    發表于 11-26 12:21 ?20次下載
    <b class='flag-5'>STM32_PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    STM32開發入門(三)——呼吸

    STM32開發入門(三)——呼吸
    發表于 12-07 17:36 ?25次下載
    <b class='flag-5'>STM32</b>開發入門(三)——<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    STM32呼吸原理

    前段時間學習stm32的時候就做過呼吸實驗,瀏覽了一些博客后,做下總結呼吸原理其實是利用pwm
    發表于 12-24 19:27 ?20次下載
    <b class='flag-5'>STM32</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>原理

    STM32 使用PWM實現呼吸

    STM32 PWM實現呼吸使用STM32F103ZET6 定時器4 CH2通道產生PWM波,在
    發表于 12-24 19:41 ?55次下載
    <b class='flag-5'>STM32</b> 使用<b class='flag-5'>PWM</b>實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>

    stm32使用延時實現呼吸寄存器版

    stm32使用延時實現呼吸(寄存器)該實驗是使用STM32F103C8T6實現,使用寄存器編程。呼吸
    發表于 01-18 10:33 ?0次下載
    <b class='flag-5'>stm32</b>使用延時實現<b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>寄存器版

    基于HAL庫的STM32呼吸實驗

    STM32 ,則可以更加便捷、靈活地實現呼吸的控制。因此,本文將介紹基于 STM32呼吸
    的頭像 發表于 05-14 16:41 ?2196次閱讀
    基于HAL庫的<b class='flag-5'>STM32</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>實驗

    通過STM32實現PWM呼吸的教程

    顧名思義,就是一個的亮度的變化,由亮變暗,從暗變亮,有一個漸變,規律的變化,像是人的呼吸,是呼吸,所以叫
    的頭像 發表于 07-26 15:20 ?1.3w次閱讀
    通過<b class='flag-5'>STM32</b>實現<b class='flag-5'>PWM</b><b class='flag-5'>呼吸</b><b class='flag-5'>燈</b>的教程
    百家乐最新庄闲投注法| 澳门百家乐官网群策略| 百家乐英皇娱乐网| 太阳城百家乐官网娱乐开户| 百家乐什么方法容易赢| 先锋百家乐官网的玩法技巧和规则 | 百家乐必胜法hk| 百家乐官网庄闲当哪个好| 大发888娱乐城 手机版| 属蛇和属猪做生意吗| 百家乐官网庄闲点数| 百家乐那里可以玩| 真人百家乐官网网络游戏信誉怎么样 | 八卦24方位| 百家乐官网庄闲必赢| 太阳城绿萱园| 百家乐大赢家书籍| 南京百家乐官网赌博现场被抓| 大发888娱乐城下| 百家乐台布兄弟| 百家乐官网作弊知识| 百家乐试用软件| 百家乐官网游戏软件开发| 大发888出纳柜台登入| 百家乐娱乐注册就送| 百家乐官网的规则博彩正网| 大发888注册bet| 百家乐赌博博彩赌博网| 如何胜百家乐官网的玩法技巧和规则| 章丘市| 大发888娱乐场客户端下载| 百家乐注册就送| 百家乐官网二十一点游戏| 明升信誉| 百家乐常用公式| 阴宅24层手机罗盘| 澳门百家乐官网规例| 六合彩图库大全| 百家乐免费体验金| 亚洲百家乐论坛| 大玩家百家乐官网的玩法技巧和规则 |