stm32+HAL库制作蓝牙遥控小车
材料及其接线
蓝牙模块:HC05/6
材料均可在某宝上进行购买。
注意:蓝牙模块可进行串口调试也可不调试(及为默认设置),本文使用的为未调试状态下的蓝牙串口,有关详细调试内容可参考某宝上的商品介绍。
一.相关的配置
选择任意串口配置异步通信
设置数据属性
其中波特率视蓝牙模块的设置而定(默认值为9600),
二、代码编写:
/* USER CODE BEGIN WHILE */
uint8_t ch=0;//标志位
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
while(ch==0)
{
HAL_UART_Receive(&huart3, (uint8_t*)&ch, sizeof(ch), HAL_MAX_DELAY);
}//让蓝牙模块一直处于接收状态
if(ch==1)//前进
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, 1);
ch=0;//标志位进入while循环
}
else if(ch==2)//左转
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, 0);//L
ch=0;
}
else if(ch==3)//右转
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, 1);//R
ch=0;
}
else if(ch==4)//后退
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, 1);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, 0);//B
ch=0;
}
else if(ch==5)//停
{
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_7, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_8, 0);
HAL_GPIO_WritePin(GPIOC, GPIO_PIN_9, 0);
ch=0;
}
}
/* USER CODE END 3 */
}
值得注意的是此处用 uint8_t ch 来装蓝牙接收的数据,也可用其他不同类型的变量。
三、蓝牙控制的软件:
相关软件的下载:http://m.downcc.com/d/138232
按自己所写的代码自行编辑。
如有疑问可在线咨询