news 2026/4/16 18:26:05

C51_HC-05蓝牙通信

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C51_HC-05蓝牙通信

文章目录

  • 一、蓝牙
    • 1、蓝牙的特点
    • 2、蓝牙特性
  • 二、HC-05
    • 1、简介
    • 2、主要参数
    • 3、引脚
    • 4、模块原理图
    • 5、工作模式
      • 1)、命令响应工作模式
      • 2)、自动连接工作模式
      • 3)、进入命令响应工作模式(AT指令模式)
      • 4)、工作流程
  • 三、AT命令
  • 四、实例操作
    • 1、配置蓝牙
      • 1)、串口连接
      • 2)、进入命令响应工作模式
      • 3)、AT指令
    • 2、51与手机通讯
      • 1)、原理图
      • 2)、程序代码
      • 3)、实例现象

一、蓝牙

蓝牙(Bluetooth)是一种用于无线通信的技术标准,允许设备在短距离内进行数据交换和通信。
它是由爱立信(Ericsson)公司在1994年推出的,以取代传统的有线连接方式,使设备之间能够实现低功耗、低成本的数据传输和通信。

1、蓝牙的特点

无线通信:蓝牙允许设备在近距离内(通常是10米左右,具体取决于设备版本)进行通信,无需使用电缆或其他物理连接。
低功耗:蓝牙技术被设计为低功耗的通信方式,这使得它在移动设备上广泛使用,如智能手机、平板电脑、蓝牙耳机等。
多设备连接:蓝牙允许一个主设备(如手机)同时连接多个从设备(如蓝牙耳机、蓝牙音箱等),实现更灵活的数据传输和通信。
通用性:蓝牙技术在许多设备和应用中得到广泛应用,例如无线耳机、键盘、鼠标、汽车蓝牙连接、智能家居设备等。
安全性:蓝牙技术在不断发展和改进中,以提高其安全性,以防止未经授权的访问和数据泄露。

2、蓝牙特性

工作频段
工作在全球通用的 2.4GHz ISM 免费频段(2.400-2.4835GHz),无需申请频段许可,但会与 Wi-Fi、zigbee 等技术存在频段重叠,可能产生干扰。
通信距离
根据功率等级分为 3 类,嵌入式常用 Class 2(对应 HC-05 模块):
Class 1:功率 100mW,通信距离约 100 米(工业级)
Class 2:功率 2.5mW,通信距离约 10 米(消费级,如 HC-05、手机蓝牙)
Class 3:功率 1mW,通信距离约 1 米(耳机等微型设备)
传输速率
蓝牙 2.0+EDR:最高 3Mbps(HC-05 基于此版本)
蓝牙 4.0(BLE 低功耗):最高 1Mbps,主打低功耗,适合物联网传感器
组网方式
采用 微微网(Piconet) 结构:1 个主设备最多连接 7 个从设备,主从设备间双向通信。

二、HC-05

1、简介

HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。
该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。

2、主要参数

波特率 :4800、9600(默认)、19200、38400、57600、115200、230400、460800、921600、1382400
工作温度:-25℃~75℃
工作电压:DC3.3V~5.0V
工作电流:配对中:3040mA;配对完毕未通信:18mA;通信中:5~20mA

3、引脚

模块通过6个2.54mm间距的排针与外部连接。

4、模块原理图

5、工作模式

1)、命令响应工作模式

当模块处于命令响应工作模式时能执行AT命令,用户可以向模块发送各种AT指令,为模块设定控制参数或发布控制命令。

2)、自动连接工作模式

当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输。
主(Master):查询周围蓝牙设备,并主动发起连接,从而建立主、从蓝牙设备音的透明数据传输通道。
从(Slave):被动连接。
回环(Loopback):被动连接,接收远程蓝牙主设备数据并将数据原样返回给远程主设备。

3)、进入命令响应工作模式(AT指令模式)

1 按下模块上的按键(PIO11置高)。
2 对HC-05重新上电,模块进入AT命令响应工作模式。
3 使用串口助手,配置成波特率38400,数据位8 位,停止位1 位,无校验位,无流控制。
4 串口助手发送字符串“AT\r\n”,正常情况下模块会给出“OK\r\n”,“\r\n”为回车换行,也叫做新行。

4)、工作流程

AT指令模式配置HC-05模块。
重新上电模块,进入自动连接工作模块,连接从模块(也可以使用AT指令,在AT指令模式下连接从模块)。
建立蓝牙连接,LED常量,直接使用串口完成通信。

三、AT命令

AT+NAME:查询修改蓝牙名称。
AT+NAME或AT+NAME?,返回蓝牙名称。
AT+NAME=XXX,修改蓝牙名称为XXX。
AT+ROLE:查询修改主从模式。
AT+ROLE或AT+ROLE?,返回当前主从模式,1表示主机,0表示从机。
AT+ROLE=X,修改主从模式,X为1或0,对应主机和从机。
AT+CMODE:查询修改连接模式。
AT+CMODE或AT+CMODE?,返回连接模式,1表示任意蓝牙地址连接模式,0表示指定蓝牙地址连接模式,需要地址绑定
AT+COMDE=X。
AT+PSWD:查询修改配对密码。
AT+PSWD或AT+PSWD?,返回密码,默认是1234。
AT+PSWD=XXXX,XXXX为新密码。
AT+ADDR:查询蓝牙模块地址。
返回蓝牙模块地址,如98d3:91:fd3d35。
AT+BIND:查询修改绑定连接地址。
AT+BIND或AT+BIND?,返回绑定连接地址。
AT+BIND=XX,XX,XX,修改绑定地址,在CMODE=0时可用,注意冒号改为逗号。
AT+UART:查询修改串口波特率。
AT+ORGL:复位蓝牙模块。
AT+RMAAD:清空配对列表。

四、实例操作

1、配置蓝牙

1)、串口连接

2)、进入命令响应工作模式

第一种:
模块上电,未配对情况下就是AT模式,波特率为模块本身的波特率,默认:9600,发送一次AT指令时需要置高一次PIO11;
第二种:
PIO11 置高电平后,再给模块上电,此时模块进入AT 模式,波特率固定为:38400,可以直接发送AT指令。

3)、AT指令


注意点:
AT+NAME?:获得设备名称,这个AT指令有很大可能性是没有返回的。
AT+UART?:获得串口参数,串口的参数一共有三个,波特率、停止位、检验位。其取值如下:

其默认值为:9600,0,0。

2、51与手机通讯

手机蓝牙(SPP蓝牙调试APP)点亮LED灯,1~8点亮LED,9全灭。

1)、原理图


2)、程序代码

#include<REGX52.H>#include<stdlib.h>sbit LED1=P2^0;sbit LED2=P2^1;sbit LED3=P2^2;sbit LED4=P2^3;sbit LED5=P2^4;sbit LED6=P2^5;sbit LED7=P2^6;sbit LED8=P2^7;unsignedchardat;voidUART_init()//设置串行通信 本晶振为11.0592MHZ{TMOD=0x20;TH1=0xfd;TL1=0xfd;//波特率9600SM0=0;SM1=1;// 串口工作方式1 10位异步REN=1;//串口允许接收TR1=1;EA=1;ES=1;//串口中断}voidUART_SendByte(unsignedcharByte)//字节的发送{SBUF=Byte;while(TI==0);//当数据发送完成时,TI会变为一TI=0;}voidmain(){UART_init();LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,LED7=1,LED8=1;while(1){switch(dat){case1:{LED1=0;break;}case2:{LED2=0;break;}case3:{LED3=0;break;}case4:{LED4=0;break;}case5:{LED5=0;break;}case6:{LED6=0;break;}case7:{LED7=0;break;}case8:{LED8=0;break;}case9:{LED1=1,LED2=1,LED3=1,LED4=1,LED5=1,LED6=1,LED7=1,LED8=1;break;}}}}voidUART_INTERRUPT()interrupt4{if(RI==1)//RI=1时表示接收到了数据{dat=SBUF;//创建变量dat接收缓存区的数据,实现接收。RI=0;UART_SendByte(SBUF);//或SBUF = dat; 将数据放于缓冲位实现发送。}}

3)、实例现象

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 18:24:38

Notepad++紧急更新,且是两个版本,究竟修复了什么

开源文本编辑器 Notepad 接连发布了 v8.8.8/v8.8.9 更新&#xff0c;修复了更新组件 WinGUp 在对下载文件签名和证书校验不够严格的问题。 上月&#xff0c;Notepad 爆出了安全漏洞&#xff1a;在安装了 Notepad 的机器上&#xff0c;黑客劫持网络后&#xff0c;利用自动更新机…

作者头像 李华
网站建设 2026/4/16 14:02:18

MySQL 的 MVCC(多版本并发控制)详解

MVCC&#xff08;Multi-Version Concurrency Control&#xff0c;多版本并发控制&#xff09;是 MySQL InnoDB 存储引擎实现事务隔离级别的核心机制&#xff0c;其核心目标是在不加锁&#xff08;或减少加锁&#xff09;的情况下&#xff0c;实现读写并发&#xff0c;同时保证事…

作者头像 李华
网站建设 2026/4/16 1:03:50

Unione Flow Editor 流程节点属性控件事件机制深度解析

Unione Flow Editor 流程节点属性控件事件机制深度解析 在企业级流程编辑器的落地实践中&#xff0c;流程节点的属性配置是承接业务逻辑的核心载体。不同业务场景对属性控件的交互需求往往复杂多变&#xff1a;审批类型切换时需隐藏冗余属性、特定条件下需动态标记必填项、选择…

作者头像 李华
网站建设 2026/4/15 22:29:32

SPM使用程序进行批处理

SPM使用程序进行批处理注&#xff1a;1.batch在SPM中保存(save batch and script) 2.运行batch不必在SPM中,在matlab界面点击上方绿色箭头Run即可 3.file‘E:\Download\MRI_AD_TI_256256170\ADNI\test\data’;为数据文件夹位置,需要自己定义 4.for循环中i从3开始循环(前两个.和…

作者头像 李华
网站建设 2026/4/16 3:57:34

SPM设置原点

目的&#xff1a;处理过程中无需点击 方法&#xff1a;利用display预先设置原点。 先点击set origin 再点击reorient 最后点击no

作者头像 李华
网站建设 2026/4/16 10:44:23

Qwen3-VL多模态大模型全解析:技术突破、部署实践与行业应用指南

Qwen3-VL多模态大模型全解析&#xff1a;技术突破、部署实践与行业应用指南 【免费下载链接】Qwen3-VL-8B-Thinking 项目地址: https://ai.gitcode.com/hf_mirrors/Qwen/Qwen3-VL-8B-Thinking 在人工智能领域&#xff0c;多模态交互技术正引领新一轮创新浪潮。Qwen3-VL…

作者头像 李华