OpenEdv-开源电子网

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

原子哥请进,关于TIM2完全重映射后PWM的CH1和PWM的CH2没有输出

[复制链接]

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-12-26
在线时间
2 小时
发表于 2011-12-26 13:43:08 | 显示全部楼层 |阅读模式

TIM2完全重映射后PWM的CH1和PWM的CH2没有输出,CH3,CH4正常输出了。

代码如下:
 RCC->APB2ENR|=1;   //开AFIO时钟使能
 AFIO->MAPR|=0X04<<24;  //关闭JTAG-DP,SW-DP
 AFIO->MAPR|=0X03<<8;  //全部重定义TIM2

 RCC->APB1ENR|=0X0F;       //TIM2 3 4 5时钟使能
 RCC->APB2ENR|=1<<11;       //TIM1时钟使能
 RCC->APB2ENR|=1<<13;       //TIM8时钟使能
 RCC->APB2ENR|=1<<2;     //使能PORTA时钟
 RCC->APB2ENR|=1<<3;     //使能PORTB时钟   
 RCC->APB2ENR|=1<<4;     //使能PORTC时钟   


 GPIOA->CRL&=0X00FF0000;//PA7 6 PA0-3输出
 GPIOA->CRL|=0XBB00BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOA->ODR|=11001111;//PA7 6 PA0-3上拉

 GPIOA->CRH&=0X0FFF0000;//PA15 PA8-11输出
 GPIOA->CRH|=0XBF00BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOA->ODR|=1000111111001111;//PA15 PA6-11 PA0-3上拉

 GPIOB->CRL&=0X00FF0F00;//PB0 1 3 6 7输出
 GPIOB->CRL|=0XBB00B0BB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOB->ODR|=11001011;//PB1 PB0上拉
 GPIOB->CRH&=0XFFFF0000;//PB8-11输出
 GPIOB->CRH|=0X0000BBBB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOB->ODR|=0X3F<<6;//PB6-11 上拉 

 GPIOC->CRL&=0X00FFFFFF;//PC6 7输出
 GPIOC->CRL|=0XBB000000;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOC->ODR|=0X03<<6;//PC6 7上拉 

 GPIOC->CRH&=0XFFFFFF00;//PC8 9输出
 GPIOC->CRH|=0X000000BB;//复用功能输出 (复用功能推挽输出模式,最大速度50MHz)
 GPIOC->ODR|=0X03;//PB8 9 上拉 

 TIM8->ARR=arr;//设定计数器自动重装值
 TIM8->SC=psc;//预分频器不分频

 TIM5->ARR=arr;//设定计数器自动重装值
 TIM5->SC=psc;//预分频器不分频

 TIM4->ARR=arr;//设定计数器自动重装值
 TIM4->SC=psc;//预分频器不分频

 TIM3->ARR=arr;//设定计数器自动重装值
 TIM3->SC=psc;//预分频器不分频
 
 TIM2->ARR=arr;//设定计数器自动重装值
 TIM2->SC=psc;//预分频器不分频

 TIM1->ARR=arr;//设定计数器自动重装值
 TIM1->SC=psc;//预分频器不分频

 TIM1->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM1->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM2->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM2->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM3->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM3->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM4->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM4->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM5->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM5->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM8->CCMR1|=0X6464;  //CH2 PWM1模式,CH2预装载使能,CH1 PWM1模式,CH1预装载使能
 TIM8->CCMR2|=0X6464;  //CH3 PWM1模式,CH3预装载使能,CH4 PWM4模式,CH4预装载使能

 TIM1->CCER|=0X1111;   //OC1-4 输出使能
 TIM2->CCER|=0X1111;   //OC1-4 输出使能
 TIM3->CCER|=0X1111;   //OC1-4 输出使能
 TIM4->CCER|=0X1111;   //OC1-4 输出使能
 TIM5->CCER|=0X1111;   //OC1-4 输出使能
 TIM8->CCER|=0X1111;   //OC1-4 输出使能

 TIM1->CR1=0x8000;   //ARPE使能
 TIM1->CR1|=0x01;    //使能定时器1            

 TIM2->CR1=0x8000;   //ARPE使能
 TIM2->CR1|=0x01;    //使能定时器2            

 TIM3->CR1=0x8000;   //ARPE使能
 TIM3->CR1|=0x01;    //使能定时器3            

 TIM4->CR1=0x8000;   //ARPE使能
 TIM4->CR1|=0x01;    //使能定时器4            

 TIM5->CR1=0x8000;   //ARPE使能
 TIM5->CR1|=0x01;    //使能定时器5            

 TIM8->CR1=0x8000;   //ARPE使能
 TIM8->CR1|=0x01;    //使能定时器8            

目前有两个问题
第一:TIM2完全重映射后PWM的CH1和PWM的CH2没有输出
第二:TIM1和TIM8也没有PWM输出
我用的时103RCT6

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2011-12-26 15:09:31 | 显示全部楼层
回复【楼主位】dzq1980:
---------------------------------
既然3和4有输出,1和2,你可以看看寄存器的数据,和3和4 的对比下.
TIM1和TIM8有个主输出使能,不知道你使能了没有,如果不使能,就无输出的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-12-26
在线时间
2 小时
 楼主| 发表于 2011-12-26 15:23:47 | 显示全部楼层
请问TIM1主输出使能在哪个寄存器里呢,没有找到配置的地方
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-12-26
在线时间
2 小时
 楼主| 发表于 2011-12-26 15:25:58 | 显示全部楼层
TIM2不重映射是完全正常的。
完全重映射后PWM的CH1和PWM的CH2没有输出
没有找到原因
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-12-26
在线时间
2 小时
 楼主| 发表于 2011-12-26 16:37:11 | 显示全部楼层
请问TIM1主输出使能找到了
TIM1->BDTR|=1<<15; //TIM1开主使能    这里只有TIM1和8用
不加这里,TIM1和TIM8没有PWM输出
现在还有一个问题就是TIM2不重映射是完全正常的。 
完全重映射后PWM的CH1和PWM的CH2没有输出 
没有找到原因
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2011-12-26 17:16:36 | 显示全部楼层
回复【5楼】dzq1980:
---------------------------------
那你看看是不是IO弄错了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

3

主题

7

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2011-12-26
在线时间
2 小时
 楼主| 发表于 2011-12-26 17:33:04 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
IO没有错,CH1和CH2重映射后是PA15和PB3这两个IO口又刚刚好是JTAG的端口,可是我以关闭了JTAG端口还是不行
RCC->APB2ENR|=1;   //开AFIO时钟使能
 AFIO->MAPR|=0X04<<24;  //关闭JTAG-DP,SW-DP
 AFIO->MAPR|=0X03<<8;  //全部重定义TIM2

 
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2011-12-26 22:47:54 | 显示全部楼层
和JTAG共用哦.
你先去定你的JTAG关闭成功了没有
void JTAG_Set(u8 mode)
{
u32 temp;
temp=mode;
temp<<=25;
RCC->APB2ENR|=1<<0;     //开启辅助时钟    
AFIO->MAPR&=0XF8FFFFFF; //清除MAPR的[26:24]
AFIO->MAPR|=temp;       //设置jtag模式
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

20

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2012-10-19
在线时间
0 小时
发表于 2013-11-4 20:13:41 | 显示全部楼层
回复【楼主位】dzq1980:
---------------------------------
楼主,你好!我也遇到与你同样的问题了,也是stm32中的TIM2的CH3(PB10)和CH4(PB11)与TIM1的CH1、Ch2、CH3相冲突,不知道怎么回事,这个问题你解决了吗。帮忙指点一下呗。求高手指点一二
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2013-11-4
在线时间
1 小时
发表于 2014-2-12 17:02:53 | 显示全部楼层
      楼主的问题解决了吗?遇到同样问题,TIM2_CH2,PB3输出,死活不出PWM,求高人指点啊。
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2013-11-4
在线时间
1 小时
发表于 2014-2-12 17:03:29 | 显示全部楼层
回复【楼主位】dzq1980:
---------------------------------
楼主的问题解决了吗?遇到同样问题,TIM2_CH2,PB3输出,死活不出PWM,求指点啊。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-5-19
在线时间
0 小时
发表于 2014-5-19 23:22:36 | 显示全部楼层
同样问题啊,求助!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-5-19
在线时间
0 小时
发表于 2014-5-21 23:11:30 | 显示全部楼层
我解决了。我的问题原来是有两个原因:
1。
重映射的函数用的不对。
#define GPIO_PartialRemap1_TIM2     ((uint32_t)0x00180100)  /*!< TIM2 artial1 Alternate Function mapping */
#define GPIO_PartialRemap2_TIM2     ((uint32_t)0x00180200)  /*!< TIM2 artial2 Alternate Function mapping */
#define GPIO_FullRemap_TIM2         ((uint32_t)0x00180300)  /*!< TIM2 Full Alternate Function mapping */
应该用的是第一个或者第三个,就是使用了A15和B3IO口。如果用的是第二个就没有映射到A15和B3上。
2.
没有关闭JTDI和JTDO
加上下面代码就可以:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE);
AFIO->MAPR&=0XF8FFFFFF; 
AFIO->MAPR|=0X04000000;
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-9-27
在线时间
0 小时
发表于 2014-9-27 16:09:13 | 显示全部楼层
回复【13楼】五行缺日:
---------------------------------
你好  我刚接触stm32,请问各个定时器的重映设表在哪里有啊    我找了好久没找到    只有实例定时器3的 表
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
23
金钱
23
注册时间
2014-5-19
在线时间
0 小时
发表于 2014-10-8 22:45:01 | 显示全部楼层
回复【14楼】枫叶之星98:
---------------------------------
不好意思不记得了,但是原子哥的手册里确实有,印象中位置有点奇怪。好像是提别的什么东西时附带说了一下。
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
89
金钱
89
注册时间
2015-5-8
在线时间
8 小时
发表于 2015-9-22 16:27:06 | 显示全部楼层
回复【13楼】五行缺日:
---------------------------------
我关闭了JTDI和JTDO 后SW就找不到了芯片 这是什么情况啊?
回复 支持 反对

使用道具 举报

7

主题

37

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
209
金钱
209
注册时间
2015-8-17
在线时间
22 小时
发表于 2015-11-25 17:08:20 | 显示全部楼层
我也遇到这样的问题了,但还是解决不了啊
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2015-4-12
在线时间
6 小时
发表于 2017-4-27 10:30:56 | 显示全部楼层
试验过,13楼是正解
回复 支持 反对

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
64
金钱
64
注册时间
2017-5-20
在线时间
15 小时
发表于 2017-7-7 20:29:54 | 显示全部楼层
13楼正解,但是就想知道如果直接用操作寄存器配置的话该如何配置?
AFIO->MAPR &= 0xFFFFFFCFF;
AFIO->MAPR |= 0x000000100;
我是这样配置的,但就是错误
回复 支持 反对

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
48
金钱
48
注册时间
2017-8-20
在线时间
4 小时
发表于 2017-8-20 20:46:23 | 显示全部楼层
13楼强...解决了果然是jtag有关系
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2020-2-8
在线时间
2 小时
发表于 2020-2-9 16:03:10 | 显示全部楼层
13楼NB!困扰我两天的问题解决了!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 08:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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