STM32 HAL庫快速實戰總集《完整專案重構》--基於黑龍江科技大學機電工業機器人實訓
阿新 • • 發佈:2021-12-13
系列目錄
點選檢視
- STM32 HAL庫快速實戰【一】《32點燈》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【三】《pwm控制舵機》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【四】《串列埠簡單使用》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【五】《控制串列埠電機》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【六】《藍芽控制》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【七】《機械臂控制》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【八】《聲音感測器的使用》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【九】《超聲波感測器的使用以及自由避障》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【十】《顏色感測器的使用》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
- STM32 HAL庫快速實戰【十一】《紅外感測器的使用及巡線循跡》--基於黑龍江科技大學機電工業機器人實訓 - USTHzhanglu - 部落格園 (cnblogs.com)
前言
在前面章節,我們完成了所有子專案的構建與測試。但是隨著子專案的增加,程式碼趨向混亂,不利於閱讀與修改。這裡將對整個專案進行重構,提供一個最終使用版本。
專案重構
控制功能重構
在之前的專案中,獲取命令使用的是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 */