• STM32Cube IDE配置串口发送与接收


    此项目源码下载地址:https://github.com/lizhiqiang0204/STM32CubeIDE_Uart

    串口与中断配置如下

     

     在生成的main函数中,添加开启串口接收中断

      HAL_Init();
    
      /* USER CODE BEGIN Init */
    
      /* USER CODE END Init */
    
      /* Configure the system clock */
      SystemClock_Config();
    
      /* USER CODE BEGIN SysInit */
    
      /* USER CODE END SysInit */
    
      /* Initialize all configured peripherals */
      MX_GPIO_Init();
      MX_USART1_UART_Init();
      /* USER CODE BEGIN 2 */
      LED2(OFF);
      HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRx1Buffer, 1);//使能串口接收中断
      printf("************FreeRTOS********************
    ");
    
    
      /* USER CODE END 2 */

    然后在接收中断回调函数中写接收过程

    /* USER CODE BEGIN 4 */
    /**
      * @brief  Rx Transfer completed callbacks.
      * @param  huart pointer to a UART_HandleTypeDef structure that contains
      *                the configuration information for the specified UART module.
      * @retval None
      */
    void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
    {
      /* Prevent unused argument(s) compilation warning */
      UNUSED(huart);
      /* NOTE: This function Should not be modified, when the callback is needed,
               the HAL_UART_TxCpltCallback could be implemented in the user file
       */
        if(huart->Instance == huart1.Instance)
        {
            if(bRx1_complete != 0)
                return;
    
            if(Uart1_Rx_Cnt >= 255)
            {
                Uart1_Rx_Cnt = 0;
                memset(Uart1_RxBuff,0x00,sizeof(Uart1_RxBuff));
            }
            else
            {
                Uart1_RxBuff[Uart1_Rx_Cnt] = aRx1Buffer;
                Uart1_Rx_Cnt++;
                if((Uart1_RxBuff[Uart1_Rx_Cnt-1] == 0x0A)&&(Uart1_RxBuff[Uart1_Rx_Cnt-2] == 0x0D))
                {
                    Uart1_Rx_Cnt= 0;
                    bRx1_complete = 0;
                }
            }
        }
        HAL_UART_Receive_IT(&huart1, (uint8_t *)&aRx1Buffer, 1);
    }
    
    /* USER CODE END 4 */

    调试结果如下:

  • 相关阅读:
    Ubuntu 系统装机指南
    java读取配置文件属性
    反转单链表 递归与非递归
    迟到的2013年终总结
    2014年阅读资料总结
    程序人生的四个象限和两条主线
    查找单链表中倒数第k个结点
    技术人员应真正学会的第二课程
    Linux“七大蠢”收录
    postman测试方法,出现400错误码
  • 原文地址:https://www.cnblogs.com/lizhiqiang0204/p/11659957.html
Copyright © 2020-2023  润新知