前言(文章末尾附STM32 源码)
HC-08蓝牙串口通信模块是基于BLE4.0蓝牙协议的数据透传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,接收灵敏度-93dBm,空旷环境下和可以实现 80 米超远距离通信。 本文内容为HC-08的简单使用教程,以及进行远程控制LED的简单应用。
一、AT指令
AT指令功能是设置蓝牙模块的参数,只能在蓝牙未连接的情况下使用,通过串口传输进行设置参数。
二、使用测试
在不使用MCU的情况下,通过PC的串口工具来设置蓝牙模块参数,用手机进行蓝牙连接通信。
1.使用到的工具如下
- HC-08蓝牙透传模块
- PC上位机和任意一个串口工具
- USB转TTL模块
- 手机及任意一个BLE调试工具(一般能在APP商店下载)
2.示意图
3.开始测试
-
连接好上电后,打开串口助手,设置波特率为9600(默认),如下图。 -
发送AT,返回OK,说明模块运行正常. -
修改蓝牙名称(如果使用中文名称,发送的ASCII码和Android系统uft-8编码不同会导致乱码)。 -
打开手机蓝牙,扫描并发现HC-08模块。 -
打开BLE调试工具,进行连接、发送和接收数据。 手机发送,HC-08接收后通过串口传输到PC。
同样,HC-08进行发送,手机进行接收。 设置好后PC串口进行发送。 发送后手机接收到数据。
三、远程控制点亮MCU板上的LED
1.管脚配置
STM32F103C8T6管脚设置如下,开启USART1中断,利用中断接收控制LED。
2.相关变量定义
uint8_t led_on ='1';
uint8_t led_off ='0';
uint8_t Rxbuf;
3.串口中断回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)
{
if(Rxbuf == led_on){
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_RESET);
}else if(Rxbuf == led_off){
HAL_GPIO_WritePin(LED_GPIO_Port,LED_Pin,GPIO_PIN_SET);
}
HAL_UART_Receive_IT(&huart1,&Rxbuf,1);
}
}
4.手机控制LED
发送1,STM32最小系统板上的LED亮起,发送0,熄灭。
四、获取工程源码
关注公众号,回复 “HC08” 获取源码;若有疑问,请在讨论区留言或公众号发送信息,本人将及时回复
|