电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
用DMA方式产生多路互补PWM信号
已解决
73482
个问题
已帮助
5993
位优秀工程师
用DMA方式产生多路互补PWM信号
liguilini
2017-12-07
浏览量:1944
我用stm32f3以DMA方式产生互补的两路PWM信号。参考了stm32cubef3中stm32f3-discovery下TIM_DMA的例程,该程序只有一路PWM, 我在此基础上增加了一路与之互补的PWM,采用HAL库函数HAL_TIM_PWM_Start_DMA和TIM_CCxChannelCmd实现了占用一个DMA通道(两路GPIO通道)正常产生一对互补PWM信号。现在出现的问题是用这两个函数如果想实现第二个和第三个DMA通道的两路互补PWM(一共6路PWM)就不行了,不能同时产生PWM信号,单独使用任何一个DMA通道都可以产生正常的两路互补PWM,但是三个DMA通道不能同时使用。如果不用DMA方式6路PWM都可以正常产生,比如采用函数HAL_TIM_PWM_Start和TIM_CCxChannelCmd。我猜想应该是DMA设置问题,但搞了很久都没有解决,不知道原因在哪里,请高手赐教。
显示全部
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
汉云
HAL_TIM_PWM_Start_DMA函数初始化以后只能调用一次,如果想多次调用,必须每次都要初始化。即每次都要先执行HAL_TIM_PWM_ConfigChannel
发布于
2017-12-07
举报
评论 1
0
0
电子老工程师
回复了 :见附件
回复
其他答案
数量:
1
donatello
DMA的通道是需要分时复用的,要么就只用一个DMA通道,要么就取消2个以上的PWM互补信号。
发布于
2018-01-31
举报
评论 1
0
0
电子老工程师
回复了 :https://4donline.ihs.com/images/VipMasterIC/IC/PHGL/PHGL-S-A0003424569/PHGL-S-A0003424569-1.pdf?hkey=52A5661711E402568146F3353EA87419
回复
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
用DMA方式产生多路互补PWM信号
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: