
一、pwm要求![]() ![]() ![]() ![]() ![]() 二、相关概念 ![]() pwm实际上是输出功能,输出功能还是通过引脚来实现,利用引脚的复用功能,实现引脚的配置,从而实现pwn输出功能 我们的台灯就是通过调节占空比实现暗-亮-较亮的调节 2.定时器timer有没有pwm输出功能,参考《参考手册》 ![]() 如此查询可知28、29、30章的timer都支持pwm输出功能 三、CubeMX配置 1.检查某个定时器是否支持pwm输出功能? ![]() 如果有channel的话表示支持PWM输出功能 2.对引脚PA7进行配置(题目要求) ![]() 一个timer可能有很多通道支持pwm输出,可以根据自己平时练习选一个通道(我选的是timer3的通道2) 3.配置所选定时器的时钟和对应通道的功能 ![]() 4.分频 ![]() ![]() 5.配置占空比 在分频的时候counter period是一个周期计数500 ![]() 6.相关参数解释 1. ![]() 2、 ![]() 3、 ![]() pwm1和pwm2的区别: 在进行PWM信号输出时,有两种PWM模式:PWM1模式和PWM2模式。 这两种PWM模式和输出有效电平的极性共同决定了PWM信号的波形。 PWM1模式 递增计数时,当TIMx_CNT(计数值)< TIMx_CCR(捕获/比较值)时,输出为有效电平,否则为无效电平。递减计数模式则刚好相反。 PWM2模式 递增计数时,当TIMx_CNT(计数值)< TIMx_CCR(捕获/比较值)时,输出为无效电平,否则为有效电平。递减计数模式则刚好相反。 ![]() 4、 ![]() 5、占空比就相当于平均输出高电平20%,实验结果如下(平均输出专业术语就是pwm输出) ![]() 四、代码 1、CubeMX自动生成的代码 ![]() 2、设置变量 ![]() 3、根据题目要求B4按键的共能,更新按键函数 ![]()
4、LED函数 ![]()
5.1、PWM函数 ![]()
5.2、timer定时器通道相关函数学习 HAL_TIM_PWM_Start(&htim3 ,TIM_CHANNEL_2 ); 当有按键按下的时候,开启timer3的2通道的PWM输出 HAL_TIM_PWM_Stop(&htim3 ,TIM_CHANNEL_2 ); 当有按键按下的时候,关闭timer3的2通道的PWM输出 注:__HAL_TIM_SetCompare(&htim3,TIM_CHANNEL_2,250) 是专门用来设置占空比的函数,这样就是占空比为250/500=50% 6、主函数和函数声明 ![]() ![]() 五、实验结果 通过控制B4能够实现LED2的亮灭 串口部分的结果问题: ![]() ———————————————— 版权声明:想要优秀点儿 |