基本思路:
步进电机加速曲线一般算好各步的频率、步数,生成数组:
{脉宽1, 步数1, 脉宽2, 步数2, 。。 脉宽N, 步数N}
启动DMA,用TIM的Update触发,源地址为脉宽1,地址固定,数量为步数2,目标地址为TIM的ARR,开DMA中断。在DMA完成中断里设置下一步的参数,直到全部完成。
以上只更新了ARR改频率,没更新CCRx保证占空比50%,看一下manual里TIMx_DCR、TIMx_DMAR寄存器介绍以及后面的Example of how to use the DMA burst feature。 |