前言
不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD、TXD、VCC(5V)、GND。
HC-05的使用
1、HC-05有6个引脚,但是我们只用到4个。
2、HC-05正面有一个按键。与HC-06的区别是,它上电之前必须要按住此按键再插入电脑中,才能够进入AT模式。HC-06没有按键,直接插上就进入AT模式,蓝牙模块闪慢灯(1s1次)。
3、用一个usb转ttl模块与HC-05连接,usb转ttl模块与电脑连接,使用串口调试助手,在蓝牙模块的AT模式下可以用一些AT指令与蓝牙模块进行交互。
蓝牙模块默认波特率是38400,把停止位设置成1,数据位设置成8,校验位设置为none。
HC-05常用AT指令:
指令名 响应 含义
AT+NAME? +NAME:Param OK 获得设备名称
AT+NAME=Param OK 设置设备名称 Parm:想要设置的名字
AT+ROLE=0 蓝牙模块为从模式
AT+CMODE=1 蓝牙模式设置为任意地址连接模式,可以被任意设备连接
AT+PSWD=1234 蓝牙配对密码为1234
AT+UART=9600,0,0 设置蓝牙通信波特率为9600,停止位1位,无校验位
HC-06的使用
HC-06与HC-05不同的是 :
1、 HC-05一般都是主从机一体,既可以设置为主机也可以设置为从机。
而HC-06在市场上分为两种情况,一种是:主从机一体;另外一种是:只有从机功能。AT+ROLE设置主从模式: AT+ROLE?是查询主从状态;AT+ROLE=1是设成主;AT+ROLE=0是设成从。
这个默认波特率不是每个蓝牙模块都一样的,有的蓝牙模块默认波特率是115200,使用的时候需要看下商家资料。或者每个波特率试着改一下,总能试出来蓝牙模块的默认波特率。试成功的现象是AT模式下,通过电脑的串口助手,电脑能够和蓝牙模块正常通信。达到此效果后,手机连上蓝牙,肯定可以与单片机进行通信。
HC-06常用AT指令
一般只用前3个即可。
蓝牙模块连上手机与STM32通信
将蓝牙模块配置好以后,再次上电,打开手机蓝牙调试助手,这里推荐两个app:“蓝牙调试器”和“蓝牙调试宝”,实测好用;在app内连上蓝牙模块,此时蓝牙模块就相当于连接手机与单片机的桥梁,在stm32中写一些程序,就可以实现手机与stm32通信了。
注意:单片机的波特率一定要配置得和蓝牙模块的波特率一致。
STM32程序
蓝牙实现手机与单片机通信的原理就是使用串口,所以单片机中进行cubmx配置和写串口的程序就可以了;这里大家可以参考一下我的这篇文章,里面详细介绍了stm32串口基本使用:STM32系列——串口收发数据基础文章来源:https://www.toymoban.com/news/detail-446533.html
/* Private user code ---------------------------------------------------------*/
/* USER CODE BEGIN 0 */
/*宏定义*/
uint8_t RX_dat = 0;
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)//串口中断服务函数
{
if(huart->Instance == USART1)//判断是否为串口1
{
if(huart->Instance == USART1)
{
if(RX_dat == 'a')//接收到字符a
{
//写上要执行的内容
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//每次接收以后都要再次开启接收中断
}
else if(RX_dat == 'b')//接收到字符b
{
//写上要执行的内容
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//每次接收以后都要再次开启接收中断
}
}
}
}
/* USER CODE END 0 */
/* USER CODE BEGIN 2 */
HAL_UART_Receive_IT(&huart1,&RX_dat,1);//开启接收中断
/* USER CODE END 2 */
手机app发送数据端
手机app发送数据端可能需要配置一下,要将发送的数据格式与程序中写的接收数据的格式对应,否则手机发送的数据单片机可能也接收不到。 文章来源地址https://www.toymoban.com/news/detail-446533.html
到了这里,关于STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!