ST意法半导体
直播中

刘丹

7年用户 1501经验值
私信 关注
[问答]

STM32G05上的USART2很低是什么原因导致此问题的?

你好,
我在一个非常简单的定制板上使用 STM32G05。我将两个 USART 都暴露给外部标头。
USART1 似乎运行良好——因为我可以发送/接收数据。
但是,USART2 不是。
当我检查 TX 线时,我发现它很低,即使在启动时也是如此。
我检查了是否有任何可能将其拉到地面的东西,但电路板上没有任何东西。   
处理器是否有可能导致此问题?

回帖(1)

王国花

2022-12-27 14:17:43
我相信我在 cubeMX 代码生成中发现了一个错误。
为 USART1 生成的代码如下所示:


  •     GPIO_InitStruct.Pin = GPIO_PIN_9|GPIO_PIN_10;
  •     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  •     GPIO_InitStruct.Pull = GPIO_NOPULL;
  •     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  •     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

为 USART2 生成的代码如下所示:


  •     GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_3;
  •     GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  •     GPIO_InitStruct.Pull = GPIO_NOPULL;
  •     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  •     GPIO_InitStruct.Alternate = GPIO_AF1_USART2;
  •     HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);

我加了


  • GPIO_InitStruct.Alternate = GPIO_AF1_USART1;

到 USART1 的初始化结构,现在它按预期工作。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分