久芯网

请教下,TIM_PWM+DMA,输出三个不同占空比的单脉冲,为啥第三个数据总是第一个输出?

avatar celeron 提问时间: 2023-08-29 13:25:32 / 未解决
使用TIM_PWM + DMA,DMA传输长度为3,即顺序输出3个不同占空比的单脉冲(10%,20%,50%),三个脉冲输出完成后进入DMA传输完成中断,关闭定时器。通过抓图形发现,实际输出是50%,10%,20%,请问这是为什么?
5个回答
  • avatar 小小超
    回答时间: 2023-08-29 13:58:19

    是不是定时器关闭的太早了?波形还没产生,就关闭定时器?

  • avatar xmshao
    回答时间: 2023-08-29 14:22:51

    你离成功不远了。这里提醒两点,第一点是定时器的预装问题,到底开了还是没开。开了,ARR/CCR值得更新需藉助更新事件,不开,即改即生效。第二点,DMA的触发事件及时机选取。当然,这两点往往有关联。你好好确认下。

  • avatar celeron
    回答时间: 2023-08-29 14:46:28
    小小超 发表于 2021-6-29 09:10
    是不是定时器关闭的太早了?波形还没产生,就关闭定时器?

    应该不是这样的,假设是,那也是最后一个脉冲50%不正常而已,而现在不管输出数据多长,最后一个脉冲都会在第一个输出,且奇怪的是输出总数还是对啊。感谢回答。

  • avatar celeron
    回答时间: 2023-08-29 15:19:15
    xmshao 发表于 2021-6-29 10:47
    你离成功不远了。这里提醒两点,第一点是定时器的预装问题,到底开了还是没开。开了,ARR/CCR值得更新需藉 ...

    好的,这两点我再仔细研究下,感谢提醒。

  • avatar 灰泥鳅
    回答时间: 2023-08-29 15:41:35

    个人建议你把问题相关的代码贴出来比较合适,配合波形更佳,像这种问题现象的描述有时候并不是自然语言能够讲清楚的。

会员中心 微信客服
客服
回到顶部