最佳答案
1-简单点可以这样做,对于STM32来说PWM的频率决定于ARR寄存器,改变ARR寄存器频率就改变了,没问题吧?
2-按照某频率发送,可以产生更新事件中断,就是该频率下发了一个周期的时候产生的中断事件,进去后对中断计数,满足你的该频率脉冲数后,在中断中将ARR寄存器数值修改为下一个频率,同时对应的脉冲数量也做更新就可以了。
3-3个电机就要有3个中断,只要保证中断中处理时间短,不要超过最高频率对用的周期时间就没有问题。
4-优化的方案就是借助DMA对脉冲数量计数,不必每一个脉冲都进中断了。
5-还有一种优化方案就是利用主从定时器(STM32),从定时器对主定时器的脉冲数量计数,到达要求后触发中断,进去后更新主定时器ARR和从定时器计数的数值,但是受限于硬件,需要连接特定的引脚,并且也支持不了几组电机,优点是:效率确实高。
1-简单点可以这样做,对于STM32来说PWM的频率决定于ARR寄存器,改变ARR寄存器频率就改变了,没问题吧?
2-按照某频率发送,可以产生更新事件中断,就是该频率下发了一个周期的时候产生的中断事件,进去后对中断计数,满足你的该频率脉冲数后,在中断中将ARR寄存器数值修改为下一个频率,同时对应的脉冲数量也做更新就可以了。
3-3个电机就要有3个中断,只要保证中断中处理时间短,不要超过最高频率对用的周期时间就没有问题。
4-优化的方案就是借助DMA对脉冲数量计数,不必每一个脉冲都进中断了。
5-还有一种优化方案就是利用主从定时器(STM32),从定时器对主定时器的脉冲数量计数,到达要求后触发中断,进去后更新主定时器ARR和从定时器计数的数值,但是受限于硬件,需要连接特定的引脚,并且也支持不了几组电机,优点是:效率确实高。
1
举报