本文讲述了HC-05蓝牙模块的配置和其与STM32F103单片机的连接。
代码使用HAL库函数编写。
AT指令配置HC-05蓝牙模块
常见的HC-05模块:
通过使用AT指令,我们对蓝牙模块可以进行查看版本号、波特率、配对密码、设置/查询设备名称等多达30多种配置方式。
蓝牙模块进入AT模式的方法
硬件连接:使用USB转TTL模块连接电脑和蓝牙模块。上电后模块板载指示灯可能是快闪状态。但进入AT模式后,板载灯为慢闪状态。
文章来源:https://www.toymoban.com/news/detail-516162.html
- 法一:
按住黑色按键(本质上是PIO11脚置高)后再上电即可进入AT模式,此时默认模特率为38400,上电后松开手就行; - 法二:
直接上电,波特率默认为9600(蓝牙模块还没有被配置过),每次发送AT指令都需要按住按键。
注意:一些模块两种方法都行。(太多的商家制作并售卖盗版模块,下文会讲到如何通过AT指令辨别是否为盗版模块)
进入AT模式后,就可以在电脑端的串口助手上编写并发送AT指令了。各种串口助手都行,比如常见的XCOM2.1,我这里用的是野火的串口助手。
每一条指令末尾都需要换行,因此这里勾上“发送新行”。
然后就可以进入愉快的配置环节了。
具体的AT指令可以参考网上,或者购买模块的时候商家给的用户手册。
这里给出网盘资源链接。
链接:https://pan.baidu.com/s/1pVDAF9EtUXxsWs0IWhBwCA?pwd=zl0k
提取码:zl0k
常用的AT指令有:
注意:有时候修改了蓝牙名称后但手机找不到修改后的蓝牙名,出现这种情况是因为手机已经和原来的蓝牙配对了,物理地址是唯一的,此时肯定找不到修改后的蓝牙名。所以需要先将原来的蓝牙取消配对,在去寻找蓝牙,才能看到修改后的蓝牙名。
单片机代码部分:
由于本项目比较简单,就不封装成单独的板级支持包了,这里只需要更改main.c。
配置好模块之后,就可以进行愉快的代码编写过程了。注意cubemx配置串口的时候要使用你配置的蓝牙串口波特率,不然无法通信。文章来源地址https://www.toymoban.com/news/detail-516162.html
//include部分
#include "main.h"
#include "usart.h"
#include "gpio.h"
#include "string.h" //字符串处理
char msg[40]; //返回信息
uint8_t rx; //接收到的信息
//写在while循环之前,检验上电后代码是否正常运行
/* USER CODE BEGIN 2 */
uint8_t send[11]={"I am ready!"};
HAL_UART_Transmit(&huart1,send,11,HAL_MAX_DELAY);
/* USER CODE END 2 */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_UART_Receive(&huart1,&rx,1,HAL_MAX_DELAY);
if(rx=='o') //发送o则开灯
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_RESET);
strcpy(msg, "Successfully opened");
HAL_UART_Transmit(&huart1,(uint8_t*)msg,19,HAL_MAX_DELAY);
}
else if (rx=='d') //发送d就关灯
{
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_13,GPIO_PIN_SET);
strcpy(msg, "LED is off");
HAL_UART_Transmit(&huart1,(uint8_t*)msg,10,HAL_MAX_DELAY);
}
else
{
strcpy(msg, "Error happens");
HAL_UART_Transmit(&huart1,(uint8_t*)msg,13,HAL_MAX_DELAY);
}
}
/* USER CODE END 3 */
}
到了这里,关于HC05蓝牙模块AT指令与手机蓝牙控制STM32板载LED的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!