OpenEdv-开源电子网

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

STM32F103,怎么解决 PWM1_CH1,PWM1_CH1N 和 PWM1_CH3,PWM1_CH3N 成对出现的问题。

[复制链接]

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-6-5
在线时间
0 小时
发表于 2015-6-5 11:11:22 | 显示全部楼层 |阅读模式
5金钱
我没办法实现PWM1_CH1N和PWM1_CH3同时输出PWM,而不影响到PWM1_CH1和PWM1_CH3N (保持原来电平不变)。
我是这样配置的。
void TIM1_Configuration(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_OCInitTypeDef  TIM_OCInitStructure; 

GPIO_PinRemapConfig(GPIO_FullRemap_TIM1,ENABLE);//PE8  E13
TIM_TimeBaseStructure.TIM_Period=899; 
TIM_TimeBaseStructure.TIM_Prescaler=0;
TIM_TimeBaseStructure.TIM_ClockDivision = 0;  
TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
  
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 

TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Set; 
TIM_OCInitStructure.TIM_OCIdleState  = TIM_OCIdleState_Reset; 
TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; 

TIM_OC1Init(TIM1, &TIM_OCInitStructure); 
TIM_OC3Init(TIM1, &TIM_OCInitStructure);  
TIM_OC1PreloadConfig(TIM1, TIM_OCPreload_Enable); 
TIM_OC3PreloadConfig(TIM1, TIM_OCPreload_Enable); 

TIM_CtrlPWMOutputs(TIM1, ENABLE);
TIM_Cmd(TIM1, ENABLE);
TIM_CCPreloadControl(TIM1, ENABLE);

}

/*****************************************************************************
                                                            时钟
*****************************************************************************/

void RCC_Configuration(void)
{
SystemInit();
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //????????
}


/*****************************************************************************
                                            GPIO
*****************************************************************************/
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_All;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOE , & GPIO_InitStructure);
}


PE8(CH1N), PE9(CH1) , PE12(CH3N), PE13(CH3)都输出了PWM。而我需要的仅仅是PE8(CH1N),PE13(CH3)来输出PWM,PE9,PE12还能做其他事情

最佳答案

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

TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable; TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;  TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Set;  TIM_OCInitStructure.TIM_OCIdleState  = TIM_OCIdleState_Reset;   TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low;  TIM_OCI ...
低调的菜鸟
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

62

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-5-29
在线时间
0 小时
发表于 2015-6-5 11:11:23 | 显示全部楼层
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Disable;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
 TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCIdleState_Set; 
TIM_OCInitStructure.TIM_OCIdleState  = TIM_OCIdleState_Reset; 
 TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_Low; 
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; 

 TIM_OC1Init(TIM1, &TIM_OCInitStructure); 

TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable;

 TIM_OC3Init(TIM1, &TIM_OCInitStructure);
回复

使用道具 举报

3

主题

2170

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5781
金钱
5781
注册时间
2013-11-22
在线时间
1212 小时
发表于 2015-6-5 11:11:23 | 显示全部楼层
仅配置PE8 E13为复用功能输出,如果还不行则关掉互补输出功能
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-6-5
在线时间
0 小时
 楼主| 发表于 2015-6-5 18:03:22 | 显示全部楼层
求解答,急急急急急急急急急急急急急急急急急急急急急急急
低调的菜鸟
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-6-5
在线时间
0 小时
 楼主| 发表于 2015-6-6 10:06:34 | 显示全部楼层
回复【4楼】lycreturn:
---------------------------------
醍醐灌顶啊!!  如此简单就将我的问题解决了。膜拜!!  
多谢,我把PE9  E12改成推挽输出问题就解决了,PE9 E12还能受我控制,不被PWM影响。
低调的菜鸟
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2015-6-5
在线时间
0 小时
 楼主| 发表于 2015-6-6 10:17:43 | 显示全部楼层
回复【3楼】XCDesigner:
---------------------------------
在CH1N工作时关闭CH1的使能,在CH3工作时关闭CH3N的使能。  看懂了,多谢解答。
低调的菜鸟
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

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

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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