所有内容都是PWM如何初始化和设置,但是这个PWM很抑郁,0不是纯,100%不是100%。驱动电机的时候,你关闭,duty给到0,也在嗡嗡叫,给满,电压还不是全功率。
而且那个初始化函数也说了,只能调用一次。
/* pwm_init should be called only once, for now */
void pwm_init(uint32 period, uint32 *duty,uint32 pwm_channel_num,uint32 (*pin_info_list)[3]);
一旦你打开了,就没办法关闭,于是电机一直在那里嗡。头都大了。
不过机制云等平台也会用到NMI硬定时器中断,如果用那些SDK,PWM这里本身也就冲突了。
或许唯一的办法是自己模拟PWM,虽然频率没有那么高,但是不至于这么尴尬。
我不想要呼吸灯,我想实际控制一台电机【一个哭泣的表情😢】
看了下ESP8266,并没有看到专门的PWM模块,估计是IO输出翻转模拟PWM波形的,这样驱动电机就要考虑IO的拉罐电流能力了。之前做方案,满格100%并不能达到自己需要的幅值,我们用晶体管,自己搭了个互补电路,这样有正有负,2路PWM叠加后,幅值就扩大为原来的2倍了。如果是IO模拟的PWM模块,可以通过定时器来控制PWM的开和关。如果是SOC内部自己真正的PWM模块,可以通过该模块的时钟关闭或者使能脚来关断该模块。