luscu 发表于 2016-12-23 15:07:34

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?

ts2000 发表于 2017-1-5 08:49:33

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方式、、、、

无薪税绵 发表于 2017-1-5 08:25:41

楼主要把这三种方式的源码复制上来才好判断。
只看函数名称,估计是用定时器产生PWM和用DMA产生PWM的区别。
DMA的好处是不占用单片机的时间。

any012 发表于 2017-1-5 09:09:35

同问,正常PWM方式会一直占用CPU直到PWM发送完成吗?

peter001 发表于 2017-1-5 09:41:19

学习一下

斜阳__ 发表于 2017-1-5 09:44:51

看看库函数内容

cldym 发表于 2017-1-5 09:53:07

学习一下

五哥1 发表于 2017-1-5 11:09:42

二楼回答是正解

队长shiwo 发表于 2017-1-5 11:27:45

大数据传输就用DMA模式,减少中断,释放CPU;一般都是用普通模式即可,IT不知道是什么时候使用的

队长shiwo 发表于 2017-1-5 11:29:42

any012 发表于 2017-1-5 09:09
同问,正常PWM方式会一直占用CPU直到PWM发送完成吗?

是的吧,一般CPU承受的起的,数据量大的话就使用DMA吧
页: [1] 2
查看完整版本: PWM启动方式IT启动DMA启动和普通启动区别?