STM32 PB3 PB4 引脚输出PWM问题

2019-12-11 18:26发布

启用STM32F103 的PB3(TIM2 CH2)  PB4(TIM3 CH1) 引脚输出PWM波形   用DMA控制PWM占空比。
遇到的问题是TIM2 和TIM3 一起初始化之后只能有一个通道输出PWM或者都无法输出PWM波形,分别单独开启TIM2 或者TIM3 时候都可以正常工作。
仅做PWM输出不开启DMA时候也是一样的情况,但是最初调试PWM没开启DMA传输时候两个引脚都可以正常产生PWM波形。后来不知道为何就出现这样的问题了。
贴上部分代码,代码有参考网上别人的代码写的。希望有知道的能提出点指导意见。(图片 源代码复制粘贴会乱)
TIM3 PWM DMA 控制.png (18.27 KB, 下载次数: 0) 下载附件 2019-5-6 18:17 上传
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Star在云端
1楼-- · 2019-12-11 19:02
等待DMA传输完成的DMA_FLAG_TCx那个错误已经改过来了
        DMA_SetCurrDataCounter(DMA1_Channel6, 144);
        DMA_Cmd(DMA1_Channel6, ENABLE);               
        TIM_SetCounter(TIM3,0);               
        TIM_Cmd(TIM3, ENABLE);                                                                                         
        while(!DMA_GetFlagStatus(DMA1_FLAG_TC6));                 
        TIM_Cmd(TIM3, DISABLE);                                                                                         
        DMA_Cmd(DMA1_Channel6, DISABLE);                                                 
        DMA_ClearFlag(DMA1_FLAG_TC6);       

20061002838
2楼-- · 2019-12-11 23:39
 精彩回答 2  元偷偷看……
PICTURE
3楼-- · 2019-12-12 04:06
既然是定时器自动输出PWM, 可以在每个语句下用while(1);死锁程序,就知道执行到哪部分出问题了。
scsdwxj2005_5
4楼-- · 2019-12-12 05:24
我没记错的话这两个引脚要正常使用必须先把JTAG禁用了。
Star在云端
5楼-- · 2019-12-12 08:15
20061002838 发表于 2019-5-6 18:34
JTAG的重映射调用一次就够了,不要调用两次,会冲突

嗯嗯  我试了试  确实是这样  非常感谢!!!
Star在云端
6楼-- · 2019-12-12 10:58
scsdwxj2005_5 发表于 2019-5-7 09:06
我没记错的话这两个引脚要正常使用必须先把JTAG禁用了。

嗯 是这样  不过是重复映射的问题  没记清是哪楼提出的  很干感谢提出指导意见

一周热门 更多>