OpenEdv-开源电子网

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

STM32F1定时器3完全重映射问题

[复制链接]

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-5-16
在线时间
11 小时
发表于 2018-7-22 22:13:26 | 显示全部楼层 |阅读模式
1金钱
  我把stm32f1的TIM3 ch4通道完全重映射到pc9(LED0)上输出pwm波实现呼吸灯,但是实际效果只是灯一直亮,没有呼吸的效果,说明了并没有输出pwm波到led上,找问题找了很久没解决于是来贴吧寻求帮助。代码如下:
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);//¿aÆô¶¨ê±Æ÷3ê±Öó
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE);//¿aÆôio¿úê±Öóoí¸′óÃ1|Äüê±Öó

        GPIO_PinRemapConfig(GPIO_FullRemap_TIM3,ENABLE);//¶¨ê±Æ÷íêè«ó3éäTIM3 CH4 -->PC9

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//íÆíì¸′óÃêä3ö
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC,&GPIO_InitStructure);//3õê¼»ˉPC9
       
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//ÏòéϼÆêy
        TIM_TimeBaseStructure.TIM_Period = arr;//éèÖÃÔ¤×°ÔØÖμ
        TIM_TimeBaseStructure.TIM_Prescaler = psc;//éèÖÃÔ¤·ÖÆμÏμêy
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);//3õê¼»ˉ¶¨ê±Æ÷
       
        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//êä3öÄ£ê½ÎaPWM1
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;//êä3ö¼«DÔμí
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputNState_Enable;//êä3öê1Äü
        TIM_OC4Init(TIM3,&TIM_OCInitStructure);//3õê¼»ˉ¶¨ê±Æ÷3í¨μà4
       
        TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);//ê1Äü¼Ä′æÆ÷Ô¤×°ÔØ
       
        TIM_Cmd(TIM3,ENABLE);//ê1Äü¶¨ê±Æ÷
}



int main(void)
{       
         u8 key,dir=1;
         u16 led0pwmval=0;
         delay_init();
         key_init();
         led_init();
         TIM3_PWM_Init(899,0);
         while(1)
                 {
                                 delay_ms(10);         
                if(dir)led0pwmval++;
                else led0pwmval--;

                if(led0pwmval>300)dir=0;
                if(led0pwmval==0)dir=1;                                                                                 
                TIM_SetCompare4(TIM3,led0pwmval);       

                }
}


微信图片_20180722221255.png

最佳答案

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

可能是以下两种情况: 1.输出PWM的频率太高导致看不出等闪烁。 2.TIM_OCInitStructure.TIM_OutputState = TIM_OutputNState_Enable; 这句代码开启的TIM_OutputNState_Enable;不知道啥意思,换成TIM_OutputState_Enable;试试吧。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

82

主题

589

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1255
金钱
1255
注册时间
2017-11-18
在线时间
296 小时
发表于 2018-7-22 22:13:27 | 显示全部楼层
可能是以下两种情况:
1.输出PWM的频率太高导致看不出等闪烁。
2.TIM_OCInitStructure.TIM_OutputState = TIM_OutputNState_Enable;
这句代码开启的TIM_OutputNState_Enable;不知道啥意思,换成TIM_OutputState_Enable;试试吧。
没有脑袋
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-5-16
在线时间
11 小时
 楼主| 发表于 2018-7-22 22:20:15 来自手机 | 显示全部楼层
求解。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2018-7-23 01:30:23 | 显示全部楼层
不重映射,能用么?
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-5-16
在线时间
11 小时
 楼主| 发表于 2018-7-23 07:30:21 | 显示全部楼层
正点原子 发表于 2018-7-23 01:30
不重映射,能用么?

能啊,定时器3能用,小灯也能用
回复

使用道具 举报

1

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2018-5-16
在线时间
11 小时
 楼主| 发表于 2018-7-23 10:12:12 | 显示全部楼层
美丽的时光机器 发表于 2018-7-23 08:45
可能是以下两种情况:
1.输出PWM的频率太高导致看不出等闪烁。
2.TIM_OCInitStructure.TIM_OutputState = ...

嗯,确实是TIM_OutputNState_Enable;问题,我使能到ch4n通道了,非常感谢
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2019-8-27
在线时间
12 小时
发表于 2019-9-28 13:03:53 | 显示全部楼层
嘀嗒 发表于 2018-7-23 10:12
嗯,确实是TIM_OutputNState_Enable;问题,我使能到ch4n通道了,非常感谢

我也是你这种情况,我想设置定时器3通道2为完全重映射,代码拷进去led灯根本不亮,可以分享下你最后的问题出在哪里吗
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-13 14:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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