OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3937|回复: 13

使用TIM3_CH1 PB4复用输出PWM,可是实现不了

[复制链接]

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
发表于 2015-9-10 15:03:50 | 显示全部楼层 |阅读模式
5金钱
      有没有使用战舰板的盆友遇到类似的问题,使用TIM3_CH1 PB4复用输出PWM,可是实现不了。
      代码是根据原子哥的更改的,理论上应该可以的,PB5完美输出,但是PA6部分重映射PB4怎么也不能输出,改了好多遍了,论坛上有类似的问题但是似乎并没有解决,所以再发一次,大神给我指点秘境吧。

最佳答案

查看完整内容[请看2#楼]

回复【5楼】凡may: --------------------------------- 我觉得你是顺序搞错了,先开复用时钟,再禁止jtag。 RCC->APB2ENR|=1<<0; AFIO->MAPR|=100<<24; 我用寄存器写的,就这两句。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

18

主题

65

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2015-8-13
在线时间
84 小时
发表于 2015-9-10 15:03:51 | 显示全部楼层
回复【5楼】凡may:
---------------------------------
我觉得你是顺序搞错了,先开复用时钟,再禁止jtag。
RCC->APB2ENR|=1<<0;
AFIO->MAPR|=100<<24;
我用寄存器写的,就这两句。
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-10 15:05:20 | 显示全部楼层
自己顶一发,应该不是困难问题。
我用的USB下载,谢谢
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5780
金钱
5780
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-9-10 18:14:25 | 显示全部楼层
先禁止掉  JTAG
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-14 09:41:12 | 显示全部楼层
回复【3楼】lycreturn:
---------------------------------
不行啊,能否帮我看看程序。。谢谢
在下一楼
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-14 09:43:25 | 显示全部楼层

void TIM3_PWM_Init(u16 arr,u16 psc)

GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,DISABLE);

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE); 

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);  
 
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_4; //TIM_CH2
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);
 
TIM_TimeBaseStructure.TIM_Period = arr; 
TIM_TimeBaseStructure.TIM_Prescaler =psc; 
TIM_TimeBaseStructure.TIM_ClockDivision = 0;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);?

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM3, &TIM_OCInitStructure);

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; 
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High
TIM_OC1Init(TIM3, &TIM_OCInitStructure);  

TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
 TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); 
 
TIM_Cmd(TIM3, ENABLE);

}
主函数里面有这两句
TIM_SetCompare2(TIM3,led0pwmval);
TIM_SetCompare1(TIM3,led0pwmval);
应该没问题的吧,但是PB4没有输出PWM

回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5780
金钱
5780
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-9-14 10:07:36 | 显示全部楼层
回复【5楼】凡may:
---------------------------------
先开复用时钟   再重映射
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-14 11:00:12 | 显示全部楼层
回复【6楼】lycreturn:
---------------------------------
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB  | RCC_APB2Periph_AFIO, ENABLE); 

GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);  
就这两句,对吧,我就是先复用后映射
难道是细节出问题了?
如果我不用部分重映射的话,直接用PA6、PA7就可以输出两路PWM。。也是醉了
还是,谢谢你
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-16 15:40:40 | 显示全部楼层
回复【8楼】Elric_QZH:
---------------------------------
哦哦,好的谢谢,我觉得用寄存器写好高端的样子。啧啧
回复

使用道具 举报

18

主题

65

帖子

0

精华

高级会员

Rank: 4

积分
767
金钱
767
注册时间
2015-8-13
在线时间
84 小时
发表于 2015-9-16 15:48:50 | 显示全部楼层
回复【9楼】凡may:
---------------------------------
你想多了,我只是懒得记那么多英文而已。。。
回复

使用道具 举报

4

主题

12

帖子

0

精华

新手上路

积分
43
金钱
43
注册时间
2015-8-11
在线时间
1 小时
 楼主| 发表于 2015-9-16 15:53:29 | 显示全部楼层
回复【10楼】Elric_QZH:
---------------------------------
哈哈哈,好吧,这样也可以啊
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2017-7-26
在线时间
1 小时
发表于 2017-8-17 17:18:04 | 显示全部楼层
楼主解决了么
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2017-7-26
在线时间
1 小时
发表于 2017-8-17 17:19:57 | 显示全部楼层
楼主解决了么,我板子都印了,没法改,只能用PB4
回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2017-6-14
在线时间
23 小时
发表于 2017-10-15 15:41:47 | 显示全部楼层
我也遇到了同样的问题,就是tim3的部分重映射就只有pb4不能产生pwm波形
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-9 10:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表