原因是串口和GPIO配置顺序不对,应是先配置串口的一些数据,如波特率,停止位,校验位等,再配置GPIO的一些数据,这样就好了。所以必须按照stm32默认的来,先调用HAL_Init函数,初始化一些必要参数,然后配置串口数据,调用HAL_UART_Init()函数完成配置,这个函数里又会调用HAL_UART_MspInit()函数,用来配置GPIO和时钟,所以要先配置串口,再配置GPIO。
原因是串口和GPIO配置顺序不对,应是先配置串口的一些数据,如波特率,停止位,校验位等,再配置GPIO的一些数据,这样就好了。所以必须按照stm32默认的来,先调用HAL_Init函数,初始化一些必要参数,然后配置串口数据,调用HAL_UART_Init()函数完成配置,这个函数里又会调用HAL_UART_MspInit()函数,用来配置GPIO和时钟,所以要先配置串口,再配置GPIO。