STM32CubeMX之定时器PWM输出

发布时间:2024-03-25  

脉冲宽度调制模式(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




文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>