c - STM32 Usart1与TIM1不能同时工作

标签 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_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 的结构!

在您的情况下,PA9 引脚上启用了 TIM1_CH2 输出,因为您没有指定 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Disable

关于c - STM32 Usart1与TIM1不能同时工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33914379/

相关文章:

linux - 谁在刷新 Linux 中的硬件看门狗?

c++ - 无法将整数写入缓冲区内的偏移量 (char*)

c++ - 如何确定循环返回到哪个设备?

android - Titanium USB 热敏打印机驱动程序

android - Altbeacon 不在 Android 7 上扫描

c++ - Arm 内联汇编 volatile 导致 clang 与 asan 计算结果错误

c - Head First C(geo2jason 工具)

我可以在 Xcode 中使用 C 中的快速帮助语法吗?

ios - 2个IOS App之间的自动连接

assembly - ARM Aarch64 中的 PUSH {lr} 和 POP {lr}