C STM32 Usart1不';I don’我不能同时使用TIM1

C STM32 Usart1不';I don’我不能同时使用TIM1,c,bluetooth,arm,embedded,stm32,C,Bluetooth,Arm,Embedded,Stm32,我在编程stm32f103rbt6时遇到了一个问题 我使用TIM1(PB14,PB15)来生成PWM信号(效果很好),使用USART1(PA9,PA10)来进行蓝牙通信。 问题是,我不能使PWM和USART1 TX同时工作。在我进行以下配置之前,一切都很完美: TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable; TIM_O

我在编程stm32f103rbt6时遇到了一个问题

我使用TIM1(PB14,PB15)来生成PWM信号(效果很好),使用USART1(PA9,PA10)来进行蓝牙通信。 问题是,我不能使PWM和USART1 TX同时工作。在我进行以下配置之前,一切都很完美:

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
TIM_OCInitStructure.TIM_Pulse = 0;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OC2Init(TIM1, &TIM_OCInitStructure);
TIM_OC2PreloadConfig(TIM1, TIM_OCPreload_Enable);
USART1 TX在此之后停止工作。
我将感谢任何帮助

在未完全初始化ST的字段之前,切勿使用ST的结构


在您的情况下,PA9引脚上有启用的TIM1\u CH2输出,因为您没有指定
TIM\u OCInitStructure.TIM\u OutputState=TIM\u OutputState\u Disable

从数据表的快速扫描中,我猜使用
OutputNState
您在PB14/15上启用了TIM1\u CH1N/TIM1\u CH2N互补输出,但是你肯定也禁用了常规输出,瞧,它们共享USART1 Tx/Rx引脚吗?确切地说,它们是TIM1_CH2N/TIM1_CH3N。你可能是对的,但有没有办法让它按照我的要求工作呢?如果没有,我会有点惊讶,但我对这个设备还不够熟悉,无法给出一个实际的答案。另一件需要检查的事情是,pin函数是否混合在一起或者是否需要选择-可能是计时器初始化代码从USART“窃取”pin,即使实际的计时器输出未使用。我刚在定时器前配置了USART,它就开始工作了。。。