STM32使用标准版RT-Thread,移植bsp中的板文件后,想使用I/O设备模型,使用串口3或者串口4收发时,发现串口3或者串口4没反应

STM32移植RT-Thread出现的问题及解决办法

问题

使用标准版RT-Thread,移植bsp中的板文件后,想使用I/O设备模型,使用串口3或者串口4收发时,发现串口3或者串口4没反应。出现问题:程序一直跑在

while (__HAL_UART_GET_FLAG(&(uart->handle), UART_FLAG_TC) == RESET);

处,出不来。

原因

移植过程中,本身带的stm32f1xx_hal_map.c文件中,只有初始化串口1和串口2的程序,没有初始化串口3和串口4的程序。

解决方法

在HAL_UART_MspInit()和HAL_UART_MspDeInit中添加我们使用的串口配置信息。
例如添加串口3,需要添加的内容为:
在HAL_UART_MspInit(UART_HandleTypeDef* huart)中添加

else if(huart->Instance==USART3)
  {
  /* USER CODE BEGIN USART3_MspInit 0 */

  /* USER CODE END USART3_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_USART3_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();
    /**USART3 GPIO Configuration
    PB10     ------> USART3_TX
    PB11     ------> USART3_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_10;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

    GPIO_InitStruct.Pin = GPIO_PIN_11;
    GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* USER CODE BEGIN USART3_MspInit 1 */

  /* USER CODE END USART3_MspInit 1 */
  }

在HAL_UART_MspDeInit(UART_HandleTypeDef* huart)中添加

else if(huart->Instance==USART3)
  {
  /* USER CODE BEGIN USART3_MspDeInit 0 */

  /* USER CODE END USART3_MspDeInit 0 */
    /* Peripheral clock disable */
    __HAL_RCC_USART3_CLK_DISABLE();


    HAL_GPIO_DeInit(GPIOB, GPIO_PIN_10|GPIO_PIN_11);

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-10 07:32:06       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-10 07:32:06       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-10 07:32:06       82 阅读
  4. Python语言-面向对象

    2024-04-10 07:32:06       91 阅读

热门阅读

  1. 力扣练习4.9

    2024-04-10 07:32:06       26 阅读
  2. Linux进阶之旅:深入探索Linux的高级功能

    2024-04-10 07:32:06       40 阅读
  3. 《模版模式(极简c++)》

    2024-04-10 07:32:06       33 阅读
  4. MySQL-系统及自定义变量

    2024-04-10 07:32:06       43 阅读
  5. LeetCode题练习与总结:排列序列--60

    2024-04-10 07:32:06       45 阅读
  6. Linux中MySQL测试环境搭建主主集群

    2024-04-10 07:32:06       39 阅读