1. 程式人生 > 其它 >STM32 HAL庫快速實戰總集《完整專案重構》--基於黑龍江科技大學機電工業機器人實訓

STM32 HAL庫快速實戰總集《完整專案重構》--基於黑龍江科技大學機電工業機器人實訓

系列目錄

點選檢視

前言

在前面章節,我們完成了所有子專案的構建與測試。但是隨著子專案的增加,程式碼趨向混亂,不利於閱讀與修改。這裡將對整個專案進行重構,提供一個最終使用版本。

專案重構

控制功能重構

在之前的專案中,獲取命令使用的是while一直等待,帶來的後果就是在超聲波循跡等需要while迴圈的地方,無法直接結束(在這裡加入獲取命令會一直等待,十分麻煩)。
這裡使用串列埠接收中斷程式碼進行重寫控制函式。
首先開啟usart.c,定義一個命令緩衝符,用於存放接收到的命令

/* USER CODE BEGIN 0 */
uint8_t blue_cmd=NULL;
/* USER CODE END 0 */

然後加入中斷回撥函式

/* USER CODE BEGIN 1 */
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{	
  if(huart->Instance==USART3)//如果觸發USART3中斷
  { 
    HAL_UART_Receive_IT(&huart3,&blue_cmd,1);//開啟中斷,等待下一次中斷的到來
  }
}
/* USER CODE END 1 */