- 发送:AT 作用:测试连接 返回:OK
5.4.2 查询当前参数 AT+RX
- 发送:AT+RX 作用:查询模块当前参数 返回:当前参数
5.4.3 恢复出石设置 AT+DEFAULT
- 发送:AT+DEFAULT 作用:恢复出厂设置 返回:OK
5.4.4 设置主、从模式 AT+ROLE
- 发送:AT+ROLE=? 作用:查询当前模式 返回:Master 或 Slave (不会重启)
- 发送:AT+ROLE=M 作用:设置为主模式 返回:Master(并重启)
- 发送:AT+ROLE=S 作用:设置为从模式 返回:Slave(并重启)
5.4.5 设置蓝牙名称 AT+NAME
- 发送:AT+NAME=? 作用:查询当前名称 返回:OK+NAME=HC-08
- 发送:AT+NAME=Hello 作用:设置自定义名称 返回:OKsetNAME:Hello
5.4.6 设置波特率 AT+BAUD
- 发送:AT+BAUD=? 作用:查询当前波特率 返回:OK9600
- 发送:AT+BAUD=115200 作用:设置波特率 返回:OK115200,NONE
5.4.7 清除记忆地址 AT+CLEAR
- 发送:AT+CLEAR 作用:清除记忆地址 返回:OK
- 本指令只有在主机模式下有效。主机只要连接过从机,就会记住最后一次连接的从机的地址。
- 如果要连接其它从机,就必须把当前记忆的从机地址清除掉。
- 有2种方法清除记忆:模块18 脚置高电平 200mS 以上、未连线状态发送 AT+CLEAR 指令
六、使用USB转TTL模块连接、测试
6.1 连接USB转TTL模块
使用最常用的串口通信接线方式即可。重点:双方的RX、TX反接。
蓝牙 HC-08 模块 | USB转TTL模块 |
---|---|
RXD | TXD |
TXD | RXD |
GND | GND |
VCC | 3.3V 或 5V |
6.2 串口软件 参数设置
打开任意一款串口软件,如XCOM, SSCOM等等。本笔记中,使用HC的串口助手。
( HC-T 串口助手,已包含在文末网盘的资料包中 。)
- 选择相应的串口号
- 选择波特率。出厂默认 9600,如果忘记了上次的设置,可点击右侧的“波特率查询”。
- 打开串口
6.3 AT指令通信测试
6.3.1 在串口助手 下方,输入 AT指令:“AT+RX” ,作用是查询当前通信参数 。
点击发送按钮,可返回上图中信息。
如果没有返回信息,逐一检查下面步骤:
- 查看接线
- 查看串口号,查看波特率(可点击右方的”波特率查询“)
- 查看模块的蓝色LED,是否处在闪烁状态(未连接另一蓝牙设备时才是AT模式)
- 查看AT指令 ,保证大写,保证字符尾部没有空格和换行
6.3.2 分析返回的信息
- 信息中的 Role:Slave, 表示目前状态是 从机模式
- 只有从机模式,才能被手机蓝牙发现、连接
- 如果显示 Role:Master, 需要手工再发送从机设置指令:AT+ROLE=S
本步骤,先不急于测试其它指令用法,等下一步连接成功了,再综合测试。
**七、**HC08与手机连接
7.1 下载安卓APP或小程序
安卓手机:建议使用此APP,经测试可用,功能丰富,且没广告,
- 注意,要用手机的网页浏览器扫描,才能下载和安装
- 不要用微信的扫码打开,扫码结果是无效的
- APP安装时会有风险警告,自行决定是否安装
**苹果手机:**建议使用右侧的小程序,用微信扫一扫,即可打开。
7.2 手机APP连接蓝牙模块
7.2.1 先在手机设置中,打开手机的蓝牙功能。
7.2.2 打开APP:HC蓝牙助手
7.2.3 打开APP后,会自动搜索附近可用的蓝牙设备,如果没有弹出搜索,下拉刷新一下。
7.2.4 点击HC-08,将自动连接,并自动跳转到通信收发页面。可以在这里测试收发通信。
7.2.5 编辑功能自定义功能按钮
- 点击APP上方的“自定义按钮”
- 按提示,点击“设置方向按钮”,即可编辑各按钮的名称、发送值。
至此,可以通过串口软件,与手机APP进行收发通信测试了。
可预先设定好各按钮的通信发送值,以方便下一步与STM32进行通信。
八、HC08与STM32开发板连接
按上面几个方法,先使用USB转TTL模块、串口软件、APP,测试好连接、通信链路。
8.1 STM32开发板所用引脚
HC-08,与STM32开发板的连接,本笔记使用串口3(TX-PB102, RX-PB11)。
当然,没有规定一定要使用串口3, 可自行修改为其它空闲的串口引脚
注意:STM32F103C8,只有串口123, 而RC及以上,才有串口12345.
本篇笔记代码,使用引脚连接,如下表:
蓝牙 HC-08 模块 | STM32 开发板 |
---|---|
RXD | TX-PB10 |
TXD | RX-PB11 |
GND | GND |
VCC | 3.3V |
九、STM32通信代码
先上主程序
// 主函数
int main(void)
{
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 中断分组,组2:抢占级0~3,子优先级0~3 ; 全局只设置一次,尽量放在显眼的地方
USART1_Init(115200); // 串口1初始化; 用于与串口软件通信,方便代码调试; USART1(115200-N-8-1), 且工程已把printf重定向至USART1输出
Led_Init(); // LED 初始化
LED_BLUE_ON ; // 点亮蓝灯
Key_Init(); // 按键 初始化
USART3_Init(9600); // 串口3初始化; 用于与HC08通信;
USART3_SendString("AT"); // 发送AT指令, 用于测试收发是否正常
while (1) // while函数死循环,不能让main函数运行结束,否则会产生硬件错误
{
delay_ms(100); // 间隔延时
// 监察串口1:电脑串口软件所发过来的数据,判断处理
if (xUSART1.ReceivedNum)
{
USART3_SendString((char *)xUSART1.ReceivedData); // 把上位机发过来的数据,发送给HC08
printf("\r\n发送数据>>>:%s\r", (char *)xUSART1.ReceivedData); // 把所发送的数据,输出到串口上位机,方便观察
xUSART1.ReceivedNum = 0; // 清空串口1的接收标志
}
// 监察串口3:HC08接收到的数据,判断处理
if (xUSART3.ReceivedNum) // 检查HC08所用的串口是否收到数据
{
printf("\r\nHC08收到%d字节<<<:\r", xUSART3.ReceivedNum); // 把接收收到的数据,输出到串口上位机,方便观察
printf("%s\r", xUSART3.ReceivedData); // 把接收收到的数据,输出到串口上位机,方便观察
// 判断数据以执行动作
if (strstr((char *)xUSART3.ReceivedData, "LED_ON")) LED_RED_ON; // 判断APP发过来的数据包,是否包含字符串:LED_RED_ON
if (strstr((char *)xUSART3.ReceivedData, "LED_OFF")) LED_RED_OFF; // 判断APP发过来的数据包,是否包含字符串:LED_RED_OFF
if (strstr((char *)xUSART3.ReceivedData, "RELAY_ON")) LED_BLUE_ON; // 判断APP发过来的数据包,是否包含字符串:LED_BLUE_ON
if (strstr((char *)xUSART3.ReceivedData, "RELAY_OFF")) LED_BLUE_OFF; // 判断APP发过来的数据包,是否包含字符串:LED_BLUE_OFF
xUSART3.ReceivedNum = 0; // 清空串口1的接收标志
}
}
}
9.1 初始化代码
上面代码中,初始化了两个串口:
USART1_Init(115200); // 与串口助手通信
USART3_Init(9600); // 串口3初始化; 用于与HC08通信;
具体的初始化代码、收发机制代码,使用了魔女开发板家的串口代码,通用所有STM32F103芯片.
已附网盘中。
9.2 发送
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年嵌入式&物联网开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!
SIx1I9TO-1715599509840)]
[外链图片转存中…(img-PPD310pJ-1715599509841)]
[外链图片转存中…(img-HFVLbMtg-1715599509841)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上嵌入式&物联网开发知识点,真正体系化!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新!!