单片机
返回首页

STM32CubeMX之定时器PWM输出

2024-03-25 来源:elecfans

脉冲宽度调制模式(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 outputPWM产生无输出
PWM Generation CH3PWM输出到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




进入单片机查看更多内容>>
相关视频
  • 【TI MSPM0 应用实战】智能小车+工业角度编码器+血氧仪+烟雾探测器!硬核参考设计详解!

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

  • 直播回放: Microchip Timberwolf™ 音频处理器在线研讨会

  • 基于灵动MM32W0系列MCU的指夹血氧仪控制及OTA升级应用方案分享

精选电路图
  • 1瓦四级调频发射机

  • 500W MOS场效应管电源逆变器,12V转110V/220V

  • 12V 转 28V DC-DC 变换器(基于 LM2585)

  • 红外开关

  • 12V转110V/220V 500W逆变器

  • DS1669数字电位器

    相关电子头条文章