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

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

3天內不再提示

STM32CubeMX之定時器PWM輸出

嵌入式技術 ? 來源:嵌入式技術 ? 作者:嵌入式技術 ? 2022-05-31 09:19 ? 次閱讀

脈沖寬度調制模式(PWM)可以產生一個由TIMx_ARR寄存器確定頻率、由TIMx_CCRx寄存器確定占空比的信號。
??本示例實現 IO 輸出模式–PWM 波形輸出。 以 LED 驅動為例, 使用定時器高級功能(PWM 模式), 實現呼吸燈效果。

1.硬件接口

??本硬件平臺有3個LED燈分別為LED2、LED3、LED4LED2接PA1,LED2接PB8,LED4接PB9,硬件原理圖如下:

在這里插入圖片描述

根據STM32引腳定義手冊或者STM32CUbeMX軟件我們可得知定時器4的CH1和CH2對應外部引腳PB8和PB9。

在這里插入圖片描述

2 軟件設計

??打開STM32CubeMX工具,配置定時器4,將PB8配置為定時器4通道3(復用推挽輸出),PB9配置為定時器4通道4(復用推挽輸出)。

poYBAGKUlTGAc1sYAAElSouWhz0140.pngpoYBAGKUltuAMEWcAABoD6KovpU624.png#pic_centerpoYBAGKUlWuAeKGkAAHYA-wq1gs266.png

3.參數說明

模式 說明
Input capture direct mode 輸入捕獲直接模式
Input capture indirectmode 輸入捕獲間接模式
Input capture triggered by TRC 輸入捕獲觸發器模式
Output compare no output 輸出比較(凍結模式000 )
Output compare CH3 輸出比較(001)
PWM Generation No output PWM產生無輸出
PWM Generation CH3 PWM輸出到CH3
CH3 Combined channels 聯合通道
xor activation 定時器輸入異或模式
poYBAGKUltuAPC4pAABw31jFoKE208.png#pic_center

4. 代碼生成

pYYBAGKUlfmAUAOiAAO_mg10V2w646.png

PWM模式配置:

在這里插入圖片描述

PB8、PB9引腳配置和PWM模式使能

HAL_TIM_PWM_Start(timHandle,TIM_CHANNEL_3);//初始化通道3
HAL_TIM_PWM_Start(timHandle,TIM_CHANNEL_4);//初始化通道4

引腳模式配置及PWM初始化

pYYBAGKUljKAABDwAAPS43L0PPg238.png

4.呼吸燈主函數示例

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		/*實現呼吸燈*/
		if(flag==0)i++;
		else i--;
		if(i>=300)flag=1;
		if(i==0)flag=0;
		HAL_Delay(3);
		htim4.Instance->CCR3=i;//調節占空比
		htim4.Instance->CCR4=i;
  }

5.HAL庫定時器常用函數介紹

HAL庫中定時器基本功能函數源碼均在stm32f1xx_hal_tim.c中,高級功能函數在stm32f1xx_hal_tim_ex.c中,本小節主要介紹幾個常用函數。(以下列舉函數可能需要用戶調用或修改)。

/*硬件層初始化:時鐘、中斷,DMA*/
void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim);
/*中斷方式開啟定時器*/
HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim);
/*DMA方式開啟定時器*/
HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length);
/*開啟定時器PWM模式*/
HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel);
/*獲取狀態*/
HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim);
/*中斷方式開啟定時器輸入捕獲功能*/
HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)

6.軟件仿真效果展示

??通過KEIL軟件仿真,查看引腳電平變化,KEIL軟件相關設置:
CPU DLL:SARMCM3.DLL
Dialog DLL:DARMSTM.DLL Parameter:-pSTM32F103C8

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

進入仿真模式:

在這里插入圖片描述

查看引腳電平變化波形:

在這里插入圖片描述pYYBAGKUlpuAZh-iAAOSwTacxpY098.png

波形效果:

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVRf6Zi_5rC0,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center

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

    關注

    114

    文章

    4940

    瀏覽量

    210664
  • STM32
    +關注

    關注

    2247

    文章

    10691

    瀏覽量

    349899
  • 定時器
    +關注

    關注

    23

    文章

    3156

    瀏覽量

    112535
  • 呼吸燈
    +關注

    關注

    10

    文章

    107

    瀏覽量

    42530
  • kell
    +關注

    關注

    0

    文章

    3

    瀏覽量

    1986
收藏 人收藏

    評論

    相關推薦

    STM32CubeMx入門教程(3):定時器的使用

    導語“ 使用STM32CubeMx 生成初始化定時器代碼,實現定時器特定定時
    發表于 07-11 15:22 ?2725次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(3):<b class='flag-5'>定時器</b>的使用

    STM32CubeMx入門教程(4):PWM應用

    導語“使用STM32CubeMx配置定時器輸出PWM波,生成初始化代碼?!?/div>
    發表于 07-11 15:23 ?1043次閱讀
    <b class='flag-5'>STM32CubeMx</b>入門教程(4):<b class='flag-5'>PWM</b>應用

    Stm32CubeMx基本定時器的概念

    Stm32CubeMx基本定時器基本定時器概念Stm32CubeMx 配置基本配置配置LED燈配置晶振時鐘配置串口時鐘數配置TIM6定時器
    發表于 08-18 08:18

    STM32CubeMX基本定時器接口怎么使用?

    STM32CubeMX基本定時器接口怎么使用?
    發表于 11-24 07:35

    基于STM32CUBEMX的高級定時器輸出兩路PWM

    STM32CUBEMX配置教程(五)高級定時器輸出兩路PWM波基于STM32H743VI使用STM32C
    發表于 03-02 07:02

    【技術精選】嵌入式STM32原創征文活動精選文章

    網絡協議棧移植步驟與方案STM32CubeMX定時器PWM輸出STM32CubeMx
    發表于 07-27 18:26

    【MCU】基于STM32CubeMX定時器中斷實現LED閃爍

    基于STM32CubeMX定時器中斷實現 LED 閃爍本實驗基于STM32CubeMX實現對STM32開發板的配置,通過定時器中斷實現 LE
    發表于 10-29 11:06 ?20次下載
    【MCU】基于<b class='flag-5'>STM32CubeMX</b><b class='flag-5'>定時器</b>中斷實現LED閃爍

    STM32CUBEMX配置教程(十二)STM32定時器觸發的固定頻率ADC采樣(使用DMA)

    STM32CUBEMX配置教程(十二)STM32定時器觸發的固定頻率ADC采樣(使用DMA)
    發表于 11-24 13:51 ?83次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(十二)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b>觸發的固定頻率ADC采樣(使用DMA)

    STM32CUBEMX配置教程(十三)STM32定時器觸發的固定頻率DAC輸出(使用DMA)

    STM32CUBEMX配置教程(十三)STM32定時器觸發的固定頻率DAC輸出(使用DMA)
    發表于 11-24 14:06 ?44次下載
    <b class='flag-5'>STM32CUBEMX</b>配置教程(十三)<b class='flag-5'>STM32</b>的<b class='flag-5'>定時器</b>觸發的固定頻率DAC<b class='flag-5'>輸出</b>(使用DMA)

    STM32CubeMX實戰教程(五)——通用定時器PWM輸出

    前言在上一章《STM32CubeMX實戰教程(四)——基本定時器(還是點燈)》中,已經介紹過基本定時器的功能及用法,在這一章中,我講主要介紹一下通用定時器的相關功能以及配置方法,廢話不
    發表于 11-26 15:36 ?13次下載
    <b class='flag-5'>STM32CubeMX</b>實戰教程(五)——通用<b class='flag-5'>定時器</b>(<b class='flag-5'>PWM</b><b class='flag-5'>輸出</b>)

    STM32CubeMX_定時器中斷_PWM

    文章目錄前言STM32CubeMX新建工程基本定時器配置生成代碼定時器中斷PWM配置工程代碼前言STM32CubeMX_環境搭建_GPIO_
    發表于 12-05 13:51 ?13次下載
    <b class='flag-5'>STM32CubeMX</b>_<b class='flag-5'>定時器</b>中斷_<b class='flag-5'>PWM</b>

    STM32CUbeMX之兩路互補pwm波 以及死區時間設置

    STM32CUbeMX之兩路互補pwm波 以及死區時間設置STM32CUbeMX的配置keil工程里的代碼實現驗證結果芯片:stm32f103zet6STM32CUbeMX的配置1.基
    發表于 12-22 19:40 ?31次下載
    <b class='flag-5'>STM32CUbeMX</b>之兩路互補<b class='flag-5'>pwm</b>波 以及死區時間設置

    STM32CUBEMX(1)--PWM

    本篇文章主要介紹如何使用STM32CubeMX輸出PWM,并制作呼吸燈效果。
    的頭像 發表于 11-14 15:29 ?2135次閱讀
    <b class='flag-5'>STM32CUBEMX</b>(1)--<b class='flag-5'>PWM</b>

    STM32CUBEMX開發GD32F303(12)----輸出PWM及修改PWM頻率與占空比

    本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本章主要配置定時器輸出PWM
    的頭像 發表于 11-30 14:40 ?3235次閱讀
    <b class='flag-5'>STM32CUBEMX</b>開發GD32F303(12)----<b class='flag-5'>輸出</b><b class='flag-5'>PWM</b>及修改<b class='flag-5'>PWM</b>頻率與占空比

    STM32CUBEMX開發GD32F303(13)----定時器TIM捕獲PWM測量頻率與占空比

    概述 本章STM32CUBEMX配置STM32F103,并且在GD32F303中進行開發,同時通過開發板內進行驗證。 本章STM32CUBEMX配置STM32F103
    的頭像 發表于 12-07 10:15 ?2940次閱讀
    <b class='flag-5'>STM32CUBEMX</b>開發GD32F303(13)----<b class='flag-5'>定時器</b>TIM捕獲<b class='flag-5'>PWM</b>測量頻率與占空比
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>