HC-05的基本使用(STM32)

article/2025/7/6 13:42:56

目录

一、HC-05

1、HC-05简介

2、接线方式

二、AT指令

1.基本指令

2、基本的使用

3、手机连接HC-05

三、CubuMX配置(基于stm32f407zgt6)

总结


一、HC-05

1、HC-05简介

        HC-05 蓝牙串口通信模块,是基于 Bluetooth Specification V2.0 带 EDR 蓝牙协议的
数传模块。无线工作频段为 2.4GHz ISM,调制方式是 GFSK。模块最大发射功率为 4dBm,
接收灵敏度-85dBm,板载 PCB 天线,可以实现 10 米距离通信。
        模块采用邮票孔封装方式,模块大小 27mm×13mm×2mm,方便客户嵌入应用系统之
内,自带 LED 灯,可直观判断蓝牙的连接状态。
        模块采用 CSR 的 BC417 芯片,支持 AT 指令,用户可根据需要更改角色(主、从模式)
以及串口波特率、设备名称等参数,使用灵活。

 

2、接线方式

EN引脚:老师说的是控制模式的,如果给的是高电平就会进入AT模式,低电平就是正常模式。(但是我没有使用成功,所以我就放弃这种方法来设置了)

STATE没有了解,可以自行查阅。

AT指令模式现象:LED灯会慢闪

等待连接模式现象:LED灯会快闪

已连接模式现象:LED灯快慢交替闪烁

二、AT指令

1.基本指令

1, AT+ROLE设置主从模式: AT+ROLE?是查询主从状态;AT+ROLE=1是设成主, AT+ROLE=0是设成从, AT+ROLE=2设成回环角色(Slave-Loop(回环角色)——被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程蓝牙)。
2, AT+RESET:HC-05复位
3, AT+VERSION?:获取HC-05的软件版本号,只能获取,不能修改。
4, AT+ORGL:恢复出厂默认设置,当把模块设置乱了,使用此命令进行恢复默认值。
5, AT+ADDR?:获取HC-05的蓝牙地址码,只能获取,不能修改。
6, AT+NAME?:获取HC-05的名字,AT+NAME=BSP-06,修改模块的名字为BSP-06,具体
名字自行修改。
7, AT+CLASS?:设置查询设备的类型,尽量不要去修改此参数。默认是1F00。
8, AT+IAC?:查询设置查询访问码,默认是9E8B33,尽量不要去修改此参数。
9, AT+PSWD?:查询设置配对密码,AT+PSWD=”0000”,密码要有双引号,密码是四位数字.

10, AT+UART?是查询当前模块的波特率,AT+UART=波特率是设置.

 注意:AT指令不区分大小写,均已回车、换行结尾。 

 对于hc-05的基本使用了解这些AT指令就以及足够了。

2、基本的使用

 因为我在使用过程中没有使用EN引脚成功,所以我使用的用USB-TTL模块来直接和电脑上的串口通信,两者的RX和TX要反接,通信如下图。

要将波特率配置成38400,加上回车和换行。至于后续要设置名字、密码等自行修改。

3、手机连接HC-05

使用安卓手机下载SPP蓝牙串口或者HC蓝牙助手等APP,然后连接蓝牙,就会有对话框可以在里面进行发送数据。此时HC-05的灯也会快慢的交替闪烁。

三、CubuMX配置(基于stm32f407zgt6)

配置两个串口,一个用于重定义printf打印信息,另一个用于HC-05通信。我还配置了一个LED灯用于模拟发送信息来控制LED的亮灭。然后生成工程。

 main函数

int main(void)
{uint8_t Rx = 0;     //用于接收一位数据uint8_t Rx_Flag = 0;//用于标志是否接收到数据uint8_t Rx_Data[100];//用于存储接收到的数据uint8_t Rx_index = 0;//接收到的数据大小HAL_Init();SystemClock_Config();MX_GPIO_Init();MX_USART1_UART_Init();printf("this is hc-05 test \r\n");while (1){if(HAL_UART_Receive(&huart2,&Rx,1,10)==HAL_OK)//接收数据,10ms超时{Rx_Data[Rx_index++] = Rx;//存入数据Rx_Flag = 1;//给已接收到的标志位Rx = 0;//将临时存数据的变量清零}else{if(Rx_Flag==1)//判断是否刚接收到数据{printf("%s",Rx_Data);//先打印数据if(strncmp((char *)Rx_Data,"ledtoggle",sizeof("ledtoggle"))==0)//判断数据是否是让LED灯翻转{printf("0");//用于检查是否进入循环   HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_10);//翻转LED电平}memset(Rx_Data,0,strlen((char *)Rx_Data));//清空数组Rx_index=0;Rx_Flag=0;//清除标志,等待下一次接收} }}
}

因为不知道怎么去接收多个字符,所以这个方法是有很大问题的。可能是因为数据比较小所以我自己测试的时候没有问题,如果有懂的大佬求指教!

实验现象也是发一次就翻转一次。 

总结

本人是个菜鸟,如有错误,请大佬指出,谢谢!


http://chatgpt.dhexx.cn/article/3lWLUjQE.shtml

相关文章

智慧小区 HC 系统安装配置简单流程(V2022-09-28)

首先感谢官方 HC 开发(一纸荒年)的指导 ------------- 我的系统为: conetos 8.2(官方建议 7.6 版本较稳定) 登陆空间系统打开 SSH 终端# 第一步骤 1:先安装梓豪平台 1.1:梓豪平台安装是非常简单的,我们可以通过以…

Media Player Classic - HC 源代码分析 1:整体结构

Media Player Classic - HC 源代码分析系列文章列表: Media Player Classic - HC 源代码分析 1:整体结构 Media Player Classic - HC 源代码分析 2:核心类 (CMainFrame)(1) Media Player Cla…

HC-08蓝牙模块与电脑进行蓝牙远程通信! 支持HC-02、HC-08、HC-42蓝牙

因项目接触HC-08蓝牙模块,一直想电脑与STM32上接的HC-08蓝牙模块进行远程通信!在网上未能找到解决办法,此方式为广州汇承公司提供(蓝牙生产厂家),亲测有效! 一、适用型号及PC条件: 1…

蓝牙模块(HC-05/HC-06)详解

这里写目录标题 0. 蓝牙概述蓝牙技术的特点 1. 常见的蓝牙模块2. HC-05/HC-062.1 概念2.2 区别 3. STM32使用HC-05通信3.1 方法3.2 示例代码 0. 蓝牙概述 蓝牙(Bluetooth)是一种用于无线通信的技术标准,允许设备在短距离内进行数据交换和通信…

经验分享帖 汇承HC-12无线模块的简单使用说明

** 汇承HC-12无线模块的简单使用说明 ** 无意间在网上看到HC-12的功能介绍,最吸引我的是他的通信距离。于是我从网上买了两个,想着替代两个蓝牙,实现远距离通信控制。 这两张图是我手上的HC-12无线模块,其他引脚我就不多说了,与…

HC-05主从模式蓝牙配对说明v1.0

HC-05主从模式蓝牙配对说明 在参加电赛或者做毕业设计的时候,可能需要进行无线通信传输数据。 无线通信的方案有NRF24L01的射频传输。 有esp8266的wifi。 使用HC-05蓝牙的方式进行无线透传使用简单,延时较低,用于调试场景非常方便&#xff0c…

【51】HC-06蓝牙模块使用

说到蓝牙模块,就不得不说下主、从机: 主机 : 用于向从机下发指令,能够搜索从机并主动建立连接的一方。 从机 : 用于接收主机下发的命令,不能主动建立连接,只能等别人连接自己。 主从一体 : 能够在主机和从机模式间切换…

hc-05 模块教程2 (两个hc-05连接)

http://www.arduino.cn/thread-21735-1-1.html 最近在做项目需要建立两个hc-05通讯,但网上教程有限和有很多都不是很清楚所以整合了下资料重新做了一份个人认为比较详细的教程和大家一起分享学习。 这个教程说明怎么样用hc-05查找附近的hc-05模块并与它建立通讯。 …

面向对象在python中的实践---如何定义类、对象?

一、如何定义一个类 1.1基本语法 class Money:pass 类可以分为经典类和新式类 注意点: 类名Money中的首字母必须要大写 二、怎样通过类,创建一个对象 2.1根据类创建一个对象 #定义一个类 class Money:pass #根据这个类来实例化出一个对象 oneMon…

python的安装教程

Python 是这两年来比较流行的一门编程语言,主要的特点是其相对简单的语法以及丰富的第三方库。下面是python的下载安装过程。 1.python的官方下载网站: Welcome to Python.orghttps://www.python.org/ 选择自己适合的版本进行下载 * 我们以最新的3X为例…

java和python应该学哪一个,纠结?

小孩子才做选择,必须两个都学! 不用纠结,又不是说学校让你选一个学,你就真的只学一个了!(别被课本知识限制了) 从一名开发工程师的角度,我的建议是,将 Java 作为主武器&…

Python循环语句

Python 循环语句 本章节将向大家介绍Python的循环语句,程序在一般情况下是按顺序执行的。 编程语言提供了各种控制结构,允许更复杂的执行路径。 循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式&…

python 安装教程(附安装包)

有没有小伙伴想安装python,可发现官网的英文看不懂,而且加载很慢,想找找现成的安装包却五花八门,不知道下什么好了。 现在我教你怎么安装python,下载点我下64位(密码:61rn),如果下载32位点我(密码:dguv) 下好后点击这个文件 这个是你刚刚下…

尝试用python解概率题,并祝大小朋友儿童节快乐

实题操作 1. 三个人独立地去破译一份密码,每人能独立译出这份密码的概率分别为1/5, 1/3, 1/4。则这份密码被译出的概率为(3/5)。 def success():p 1/5,1/3,1/4t 1for i in p:t * 1-ireturn 1-tprint(f成功概率&…

华为OD机试用Python实现 -【组合出合法最小数】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 华为OD机试题解:…

华为OD机试用Python实现 -【字母组合】(2023-Q1 新题)

华为OD机试300题大纲 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高。 华为 OD 清单查看地址:blog.csdn.net/hihell/category_12199275.html 华为OD详细说明:https://dream.blog.csdn.net/article/details/128980730 字母组合 | 华为…

提取文本关键词?很 easy 啊,用 Python 三行搞定

从大量文本中提取有用的关键信息是数据分析的一个重要环节。 Python 作为一门广泛应用于数据分析领域的编程语言,有着强大的文本处理库。 整理了几个用于文本关键词提取的优秀工具,一起学习下。 1、jieba库 jieba 是一个中文分词库,可以将一段文本分割为单独的单词。可以…

linux建立phyon文件,PyInstaller 来建立Linux下的Python独立执行文件

以下内容假定已安装好Python 2.4/2.5 一、下载并编译pyinstaller(只需做一次,以后可直接做第二步) 1.下载pyinstaller,现在的版本是1.3 (1)wget http://pyinstaller.hpcf.upr.edu/source/1.3/pyinstaller_1.3.tar.gz 2.解包进入源码目录 (1)tar zxv pyinstaller_1.3…

phyon数据结构

phyon常用的数据结构有:序列和元组 另外不常用的有 :字符串、Unicode字符串、buffer对象、xrange对象 1、索引:跟c中的下标是一个意思 2、分片:就是索引的范围: >> >num[5] [1, 2, 3, 4, 5] >>>…

phyon快速入门(hello phyon)

创建一个phyon项目 点击新建项目 新建phyon文件 新建hellophyon print(hello phyon)在文本中编辑print(hello phyon) 右键run 控制台打印出hello pyhon 第二次运行可直接点击右上角工具栏