问题描述
我使用昨天下载的 STM32CubeIDE 开始了一个新项目,更新检查显示我是最新的。漂亮而简单的 LED 闪光灯和 UART 上的 Hello world。使用STM32H753II。
我正在使用 USART2,设置为异步。我尝试过使用和不使用 DMA。禁止我的闪烁代码,一切都是由 CubeIDE 自动生成的。
在所有情况下,程序都会在 MX_USART2_UART_Init() 内的 HAL_UART_Init(&huart2) 调用中陷入无限循环。
深入挖掘我发现它在 HAL_UART_Init(&huart2) 中卡住的地方是:
return (UART_CheckIdleState(huart));
里面是电话:
/* Wait until TEACK flag is set */
if (UART_WaitOnFlagUntilTimeout(huart,USART_ISR_TEACK,RESET,tickstart,HAL_UART_TIMEOUT_VALUE) != HAL_OK)
{
/* Timeout occurred */
return HAL_TIMEOUT;
}
TEACK 标志似乎永远不会重置的地方。令人困惑的是注释说的是 SET,但函数调用说的是 RESET。我不确定这是否是问题。
如果有人能指出我的设置出错的方向,我将不胜感激。我认为建立一个新项目来制作“hello world”会很简单!
注意;我熟悉 STM32,但正在考虑将我的项目从 TrueStudio 转移。
Link 到 STM32 论坛上的问题,我已将项目作为附件上传。
编辑;我现在也尝试了 UART4 和 UART8,同样的问题仍然存在。与 IDE 中的 UART_printf 示例项目类似。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)