STM32CubeMx——串口收發


生成代碼

1.配置串口1

 

 

2.選擇模式

 

 3.開中斷

 

 4.其他的RCC、調試都一樣,弄完直接生成代碼。

串口發送

1.定義一個用來測試的數組並初始化

/* USER CODE BEGIN 0 */

uint8_t aTxBuffer[]="123";

/* USER CODE END 0 */

2.主函數while循環發送

while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
      HAL_Delay(1000);
      HAL_UART_Transmit(&huart1,aTxBuffer,sizeof(aTxBuffer),0xffff);

  }

串口中斷接受

1.定義接受數組

/* USER CODE BEGIN 0 */

uint8_t aRxBuffer[1];

/* USER CODE END 0 */

2.先開啟中斷,只起一次作用

/* USER CODE BEGIN 2 */
  HAL_UART_Receive_IT(&huart1,(uint8_t *)aRxBuffer,1);
  /* USER CODE END 2 */

3.每次中斷觸發都要在中斷回調函數再此開啟串口接收中斷

/* USER CODE BEGIN 4 */


void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
    if(huart->Instance == USART1)//判斷串口號
    {
        HAL_UART_Transmit(&huart1,aRxBuffer,1,100);
        HAL_UART_Receive_IT(&huart1, (uint8_t *)aRxBuffer, 1);   //再開啟接收中斷
    }


}

/* USER CODE END 4 */

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM