请问STM32F103定时器3引脚完全重映射的配置方法是什么?

2019-07-20 15:41发布

[size=13.3333px]我用STM32定时器3完全重映射到PC6 IO口,配置了一个PWM脉冲,为什么用示波器测不出波形,以下是相关配置代码,求大神们指导!(一定要用到完全重映射)
[size=13.3333px]void TIM3_CH1_Init(u16 arr,u16 psc)                                 
[size=13.3333px]{
[size=13.3333px]        
[size=13.3333px]GPIO_InitTypeDef      GPIO_InitStructure;
[size=13.3333px]TIM_TimeBaseInitTypeDef     TIM_TimeBaseStructure;
[size=13.3333px]TIM_OCInitTypeDef TIM_OCInitStructure;
[size=13.3333px]//GPIO_AFIODeInit();
[size=13.3333px]RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
[size=13.3333px]RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);         

[size=13.3333px]GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);                           

[size=13.3333px]        
[size=13.3333px]GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
[size=13.3333px]GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;               
[size=13.3333px]GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
[size=13.3333px]GPIO_Init(GPIOC, &GPIO_InitStructure);


[size=13.3333px]TIM_TimeBaseStructure.TIM_Period = arr;                                    
[size=13.3333px]TIM_TimeBaseStructure.TIM_Prescaler =psc;                                 
[size=13.3333px]TIM_TimeBaseStructure.TIM_ClockDivision = 0;                                 
[size=13.3333px]TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
[size=13.3333px]TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);                  

[size=13.3333px]TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;                              
[size=13.3333px]TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;               
[size=13.3333px]TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;                        
[size=13.3333px]TIM_OC1Init(TIM3, &TIM_OCInitStructure);
[size=13.3333px]TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);                          
[size=13.3333px]TIM_Cmd(TIM3, ENABLE);                                                  
[size=13.3333px]}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
IsLuo
1楼-- · 2019-07-20 17:16
timer3做完全重映射不初始化一下寄存器很容易没有重映射成功额  所以在重映射语句前面加一句GPIO_AFIODeInit();  吧!   应该就OK啦
陈皮皮
2楼-- · 2019-07-20 18:26
 精彩回答 2  元偷偷看……
止天
3楼-- · 2019-07-20 23:00
 精彩回答 2  元偷偷看……
陈皮皮
4楼-- · 2019-07-21 00:23
止天 发表于 2017-4-1 08:45
tim3 引脚不就是pc6吗,不需要从映射的,把那句话去了   f1系列不需要

没有映射时通道1是PA6,部分重映射时是PB4, 完全重映射时是PC6,没有映射和部分映射都能输出正确PWM脉冲,完全重映射时出现了问题!
陈皮皮
5楼-- · 2019-07-21 04:03
 精彩回答 2  元偷偷看……
IsLuo
6楼-- · 2019-07-21 07:17
陈皮皮 发表于 2017-4-1 11:00
谢谢,就是这个原因了,很感谢!

为什么没有把我设为最佳答案

一周热门 更多>