PWM启动方式IT启动DMA启动和普通启动区别?
在使用PWM的时候,发现一般有三种方式启动,如下:HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
有谁可以帮我解释一下这三种方式具体使用各有什么好处和特点?最好具体一点。什么时候使用IT,什么时候使用DMA?
HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Channel)
正常PWM方式
HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t Channel)
带中断的PWM方式
HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length)
带DMA的PWM方式、、、、 楼主要把这三种方式的源码复制上来才好判断。
只看函数名称,估计是用定时器产生PWM和用DMA产生PWM的区别。
DMA的好处是不占用单片机的时间。 同问,正常PWM方式会一直占用CPU直到PWM发送完成吗? 学习一下 看看库函数内容 学习一下 二楼回答是正解 大数据传输就用DMA模式,减少中断,释放CPU;一般都是用普通模式即可,IT不知道是什么时候使用的 any012 发表于 2017-1-5 09:09
同问,正常PWM方式会一直占用CPU直到PWM发送完成吗?
是的吧,一般CPU承受的起的,数据量大的话就使用DMA吧
页:
[1]
2