系列目录
点击查看
- 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 */