在电机控制中往往会用到多通道PWM波,本实验输出4路不同占空比的PWM波。
第一步:创建工程
创建新工程Experiment_4A_4CH_PWM.ioc,选择TIM3,TIM3的Mode配置如所示。
注意:选择从Channel1~Channel4输出PWM波后,PA6、PA7、PB0、PB1自动配置成立了复用端口TIM3_CH1~ TIM3_CH4。
72MHz经过(1+719)分频后是0.1MHz,再经过(1+999)分频后是0.1KHz,可见每个计数周期是10ms,也就是说PWM波的周期是10ms。这里只能拿示波器进行观察,所以将CH极性设置为High。其中Pulse的值决定占空比。因为计数周期是1000,将CH1的Pluse设置为499+1,则CH1占空比为50%,CH2的占空比为20%,CH3的占空比为10%,CH4的占空比为1%。
第二步:添加代码
在main.c里面添加如下代码:
/* USER CODE BEGIN 2 */
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); //开启TIM3,从Channel_1(即PA6)输出PWM波
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); //开启TIM3,从Channel_2(即PA7)输出PWM波
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); //开启TIM3,从Channel_3(即PB0)输出PWM波
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_4); //开启TIM3,从Channel_4(即PB1)输出PWM波
/* USER CODE END 2 */
第三步:编译、下载、运行
下载、运行程序,用示波器观察可看到PA6、PA7、PB0、PB1输出频率为100Hz,占空比分别为50%、20%、10%、1%的脉冲波形。修改各通道Pulse的值,可观察到PA6、PA7、PB0、PB1输出脉冲的占空比改变。占空比=(Pulse+1)/(Counter Period+1)。也可用LED灯做粗略观察和比较。