stm32pwm如何精确控制频率?
现在需要做一个可以控制pwm频率的程序,要求是频率从1Khz开始每隔10ms频率增加1hz,一直增加到500Khz,如何才能实现呢?本帖最后由 toofree 于 2018-3-8 01:44 编辑
要非常准确的步进频率,用PWM实现不了。
给你提供个FPGA实现任意频率的方法。
假设你的基础时钟为10Hz,那么才能实现3Hz的频率呢?可以把10Hz一个周期的10个时钟,分为3、3、4;那么第一个周期是3个时钟,第二个周期3个时钟,第三个周期4个时钟。这样的话,在1秒之内,整体就可以输出3Hz的频率了。
用STM32也可以用类似的方法来做,但是由于STM32的是流水式的,即便用中断,也不一定每次时间都能非常准确。
DMA也许能行,没这么试过。
页:
[1]