PWM使用的时候,有几个问题没弄懂,特此请教一下,以前在STM32下使用过PWM,细节比较清晰,查找W801手册没查到相关介绍。
1、PWM计数器:该计数器是多少位的计数器?该计数器什么时候清零?能不能手动软件清零?还是只能溢出后自动清零?比如启动PWM输出,然后停止PWM输出,这时候的计数器是保持还是清零?再次启动PWM输出的时候,计数器是从0开始,还是延续原来的计数值?这涉及到第一个PWM波形,有时候对这要求比较严。
2、PWM输出电平:从手册上看可以达到100%,不能达到0。也就是可以通过调整占空比输出固定高电平,不能输出固定低电平。如果有时候需要输出固定低电平(固定高电平和固定低电平都需要)怎么处理?PWM停止后输出电平是高还是低或者是随机?我这有个地方对停止后的电平有固定要求。
3、PWM捕获:需要计算捕获波形的占空比,被测PWM波频率范围比较宽。因为不知道计数器什么时候清零,那两个捕获值不知道如何计算,而且有可能在捕获之前经历过溢出。
PWM的配置的IO是浮空,也就是说PWM停止后是处于浮空状态?那只要在对应IO口外接下拉电阻,是不是相当于停止PWM就是低电平?那就不需要注释以上语句了,duty=0的时候,停止PWM,输出低,duty=255的时候输出高电平。
不注释也可以 但是你重新启动要start 不能直接设置duty
@Mrzhao 嗯,是的,一旦设为占空比零,后面就要重新启动,幸亏提醒,不然又是一个坑。另外根据测试,好像捕获时计数器每次碰到上升沿或下降沿都会自动清零,这样捕获到的数据就是对应电平的时间。