今天调了一块stm32f051号称有11个timers,其中囿6个可以产生pwm波由于项目需要一块板子带着5个步进电机,所以需要五个单独的timer产生PWM所以上手了这样一块板子,TIM2、TIM3和TIM14很轻松实现结果TIM17怎么调也调不出来,我研究了半天包括网上的资料也很少写下来帮助后人踏过这个坑。
好吧从万恶的MDK编辑器里复制过来,中文注释不見了再贴一张图:
好的,我想这个TIM16依葫芦画瓢也应该很easy我用PA6选择的TIM16_CH1产生PWM编写代码如下:
坑爹的情况出现了,这玩意一直给我输出一个高电平压根不是PWM。
我仔细检查了N遍debug了无数次,百思不得其解后来研究了半天,找到了答案
你没有看错,就这玩意有问题了
咋一看,其实没看出来什么其实是TIM15、16、17这个三个定时器和TIM2等不一样,
里面有些默认没有赋值的参数对TIM15、16、17的初始化会影响它产生PWM所以代码將结构体申明的时候直接给初始值就好,例如:
自此完美解决TIM15、16、17无法产生PWM的情况