随便选择一个为例子,TIM2
的channel 1通道为例。
在时钟Clock source 选项中。可选 Internal Clock 和 ETR2。这里我们选择内部时钟。
本人配置图片:
参考配置图片:
Prescaler :该参数为时钟源预分频系数,
Counter Mode :计数模式,可以选择向上、向下、中心对齐等计数方式;
Counter Period :自动重装寄存器ARR值,该参数决定了生成PWM的周期,
auto-reload preload :预装载自动重装,设置为Enable后,当修改ARR的值时会在下一个UEV事件生效,否则表示不适用预装载,修改其值会立即生效;
TRGO Parameters 触发输出 (TRGO) 不使能 与本节无关
TRGO: 定时器的触发信号输出 在定时器的定时时间到达的时候输出一个信号(如:定时器更新产生TRGO信号来触发ADC的同步转换,)
Mode :可以选择模式1/模式2,这两种模式区别为生成的PWM波形不一样,选择PWM模式1且向上计数时,当Pulse值<计数值ARR时此时通道输出有效状态,否则为无效状态,
当选择PWM模式2时刚好与模式1相反。如下面两个PWM波形中,上图为采用PWM模式1,通道极性为高电平时产生的PWM波,下图为采用PWM模式2,通道极性为高时产生的PWM波;
Pulse :即捕获/比较寄存器CRR的值,通过设置该参数可以决定PWM的脉冲宽度
Output compare preload :输出比较预装载,设置为Enable后,当修改Pulse的值时会在下一个UEV事件生效,否则会立即生效;
CH Polarity :通道极性,设置通道有效状态;
参考图片的配置:
本人具体配置:
(1)定时器的时钟周期是72MHz,
prescaler=7199 ,Period=10000 Pulse=5000
f:72MHz/(prescaler+1)/( Period+1)=1KHz。 周期T:1S;
(2)占空比=(Pulse/Period); 5000/10000=50%
(3)导通的时间:(Pulse/Period)T=(5000/10000)1S=0.5s
开启定时器
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start(&htim2);
/* USER CODE END 2 */
在while中输入这个代码,开PWM
HAL_TIM_PWM_Start(&htim2 ,TIM_CHANNEL_1);
示波器夹在PA0引脚。
结果图片: