DMA+Timer 产生 PWM 多出一个波形问题
我在调试ws2812的时候吗,发现灯光的数据一直和预先的不符合,简化了程序逻辑依然看不出有什么问题,最后通过逻辑分析仪发现,PWM多出了一个波形,明显的,这导致所有的数据错了一位。
事实上这不是硬件上的BUG,猜测原因:因为每一次DMA请求是Timer的溢出中断产生的,所以在DMA请求前,就已经有一个PWM产生了,那么从时序看上,就多出一个PWM波形,但这并不是DMA产生的。
问题回顾
uint16_t test_arr[48] = {
59,29,59,5
原创
2020-07-14 15:37:38 ·
2023 阅读 ·
2 评论