赞
踩
网上的文章太啰嗦,这里直接开始。
使用的是STM32CubeIDE,HAL。以通用定时器TIM12在 通道2上输出1KHz的PWM为例。
要确定输出的引脚、定时器连接在哪里。
TIM2、3、4、5、12、13、14在APB1上,最大计数频率84M。
TIM1、8、9、10、11在APB2上,最大计数频率168M。
主要关注图中圈起来的部分。
那么按照上图的配置,用定时器12在CH2生成PWM。PWM的频率为1KHz,高/低电平=0.5ms,占空比50%,有效电平为低。
在使用MX初始化后,开启定时器,开启PWM输出就可以了。下面用中断的方式开启,也可以不用中断。
- MX_TIM12_Init();
- HAL_TIM_Base_Start_IT(&htim12);
- HAL_TIM_PWM_Start_IT(&htim12, TIM_CHANNEL_2);
改变占空比。CCR从0~100对应占空比0%~100%(按照安图上的配置)
__HAL_TIM_SetCompare(&htim12, TIM_CHANNEL_2, CCR);
改变频率
__HAL_TIM_SET_AUTORELOAD(&htim12, ARR);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。