手把手教你一步步使用基于HAL库的STM32的蓝牙手机控制以及蓝牙调试器APP的使用
(一)STM32CubeMX配置
首先需要配置Uart,我们选择UART1配置为异步模式Asynchronous,因为JDY31默认的波特率为9600,所以波特率配置为9600。
点击NVIC设置,使能UART1的中断。
记录串口1的引脚TX对应PA9,RX为PA10
如果使用的是STM32F103C8T6单片机的最小系统板,一般PC13是板载的LED,配置PC13为输出模式,标签为LED方便后续验证蓝牙的收发。
这里选择JDY31蓝牙,将VCC连接至3V3,GND公地,蓝牙的TX连接到STM32的RX引脚PA10,蓝牙的RX连接STM32的TX引脚PA9.
(二)代码书写
定义一个全局变量
uint8_t rx1;
在初始化阶段,调用串口的接收中断
HAL_UART_Receive_IT(&huart1,&rx1,1);
之后书写中断回调函数,接收到0XAA之后关灯,接收到0xBB之后开灯
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if (huart->Instance == USART1)
{
if(data==0XAA){HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET); }//关灯
if(data==0XBB){ HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET); }//开灯
HAL_UART_Receive_IT(&huart1, &rx1, 1);
}
}
(三)手机设置
下载蓝牙配置器APP,打开蓝牙,选择JDY-31点击+号,进行连接,一般初始密码是1234,等待连接成功。
选择按钮控制界面,点击编辑模式。
进入编辑模式之后,随便点击一个按钮会出现如下的设置界面,我们之前设置了AA作为关灯,BB作为关灯,我们把最上面按钮名字从手动修改为关灯,按钮发生数据输入AA,一定要勾选下面的HEX,之后点击确认即可。同理修改BB,之后推出编辑模式。
退出编辑模式,点击开灯和关灯按钮,即可实现蓝牙的控制。
下面是蓝牙调试器手机APP的连接,可以通过腾讯的微云网盘下载,感谢腾讯的网盘不限速。
蓝牙调试器手机APP:链接:https://share.weiyun.com/DH1jVmez 密码:uphi7m
