OpenEdv-开源电子网

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

TIM3的CHI不能产生PWM啊

[复制链接]

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
发表于 2017-8-4 16:00:40 | 显示全部楼层 |阅读模式
1金钱
void TIM3_PWM_Init(u16 arr,u16 psc)

{
GPIO_InitTypeDef GPIO_InitStructure;
TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_OCInitTypeDef  TIM_OCInitStructure;

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_4 ;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//³õʼ»¯GPIO


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_OC1Init(TIM3, &TIM_OCInitStructure);  
TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

TIM_Cmd(TIM3, ENABLE);  
}

程序就是把例程稍微改了一下。什么地方出问题了啊。

最佳答案

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

也许我跟你碰到了同样的问题, GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //GPIO_PartialRemap_TIM3改成GPIO_FullRemap_TIM3 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ; //GPIO_Pin_4改成GPIO_Pin_6 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB, &GPIO_InitStructure);//GPIOB改成GPIOA 这样就可以通过完全映射的方式利 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-8-4
在线时间
13 小时
发表于 2017-8-4 16:00:41 | 显示全部楼层
也许我跟你碰到了同样的问题,
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //GPIO_PartialRemap_TIM3改成GPIO_FullRemap_TIM3


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 ; //GPIO_Pin_4改成GPIO_Pin_6
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;  
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);//GPIOB改成GPIOA


这样就可以通过完全映射的方式利用CH1发送PWM了,但是IO口变了
回复

使用道具 举报

0

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2017-8-1
在线时间
21 小时
发表于 2017-8-4 16:20:44 | 显示全部楼层
你是怎么判断产没产生PWM呢
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-8-4
在线时间
13 小时
发表于 2017-8-4 16:21:46 | 显示全部楼层
令人不解的是,为什么不能通过部分重映射使用CH1通道
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-4 16:28:01 | 显示全部楼层
竹林的风 发表于 2017-8-4 16:20
你是怎么判断产没产生PWM呢

示波器上基本不显示波形,只有很小的抖动。用电压表测PB4引脚电压也没变化
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-4 16:29:18 | 显示全部楼层
热i 发表于 2017-8-4 16:21
令人不解的是,为什么不能通过部分重映射使用CH1通道

部分重映射不能使用ch1通道吗?
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-4 16:31:43 | 显示全部楼层
热i 发表于 2017-8-4 16:20
也许我跟你碰到了同样的问题,
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //GPIO_PartialRem ...

是PA6脚吗
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-8-4
在线时间
13 小时
发表于 2017-8-4 16:47:05 | 显示全部楼层

是的、。。。
回复

使用道具 举报

1

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
115
金钱
115
注册时间
2017-8-4
在线时间
13 小时
发表于 2017-8-4 16:47:59 | 显示全部楼层
李洪恩 发表于 2017-8-4 16:29
部分重映射不能使用ch1通道吗?

我也在纳闷这个问题,我是想用CH1和CH2同时发生PWM波,利用部分重映射我无法实现
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-4 17:12:46 | 显示全部楼层
热i 发表于 2017-8-4 16:47
我也在纳闷这个问题,我是想用CH1和CH2同时发生PWM波,利用部分重映射我无法实现

你那个我也不能实现。现在还是只能让CH2输出PWM。很尴尬的。
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-4 18:12:22 | 显示全部楼层
热i 发表于 2017-8-4 16:20
也许我跟你碰到了同样的问题,
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE); //GPIO_PartialRem ...

不用映射的话都能实现。部分映射的话CH2还是不行。全映射还没试出来。
回复

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2017-6-24
在线时间
18 小时
发表于 2017-8-5 21:46:44 | 显示全部楼层
TIM_ARRPreloadConfig设置一下这个函数
回复

使用道具 举报

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-3-23
在线时间
27 小时
发表于 2017-8-6 07:10:07 | 显示全部楼层
PA6是正常的复用,你全映射也能输出?
回复

使用道具 举报

9

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2017-7-25
在线时间
26 小时
 楼主| 发表于 2017-8-6 13:24:14 | 显示全部楼层
longe2 发表于 2017-8-6 07:10
PA6是正常的复用,你全映射也能输出?

全映射可以。不用映射也可以。部分映射其他三个通道可以,就通道一不行。。
回复

使用道具 举报

0

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2017-6-14
在线时间
23 小时
发表于 2017-10-15 16:28:54 | 显示全部楼层
CHENgtong 发表于 2017-8-5 21:46
TIM_ARRPreloadConfig设置一下这个函数

这个有什么用呢?
回复

使用道具 举报

14

主题

76

帖子

0

精华

初级会员

Rank: 2

积分
77
金钱
77
注册时间
2017-8-16
在线时间
37 小时
发表于 2017-10-16 09:37:40 | 显示全部楼层
用完全重映射就行啦
回复

使用道具 举报

2

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2017-6-24
在线时间
18 小时
发表于 2018-2-13 12:12:14 | 显示全部楼层

自动预装载使能
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 19:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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