市场上HC05模块有好几种,一般都是带有按键的。像下边这种(6只引脚的)(这个是从优信电子那搞过来的,他的模块的按键有点问题,不用摁照样能进入AT模式)

要使模块之间交互数据,必须要能够进入AT模式,像下边这蓝牙总共有6个腿就可以进入AT模式,具体接线如下:
VCC---------------> (接USB转串口模块的5V)
GND---------------> (接USB转串口模块的GND)
EN -----------------> (接USB转串口模块的3V3)
TXD----------------> (接USB转串口模块的RXD)
RXD----------------> (接USB转串口模块的TXD)
STATE-------------> (空,不用接)

还有种是四只腿的,如果要进入AT模式,那么你需要自己加加按键(他给你留好了位置在旁边了,找个按键焊接上去就行了)

一般情况下,蓝牙默认是从机模式,波特率为38400,停止位1,数据位8,无奇偶校验
那么,该怎么进入AT模式呢?

1、如果模块是跟我那上面的图的一样(6个引脚)(那个优信电子的,按键没用),那就直接跟上边的接线一致就行了(AT模式下,LED会慢闪,否则,没有进入AT模式);

2、如果是另外一种情况(不是在优信淘宝买的),你就需要先 “摁住按键” ,然后再(EN / KEY引脚)接上3V3的电压。

然后呢,开始一系列操作,我要开始了,呀-咚-啪。
材料:
两个USB转TTL模块
两个蓝牙模块
两个单片机(51的为例)
杜邦线等

电脑上准备两个串口助手(到时候方便通讯,推荐用孙大明写的或者原子的,自己找吧,我懒得弄上来了)

一、主机接线如下:
A模块(将这个作为主机吧)
在串口助手上发送(当然,你先得配置好串口助手,波特率那些的设置都在上面)
1–>恢复默认设置: AT+ORGL\r\n 【\r\n即回车、换行,在串口调试助手上敲一个回车即可】
2–>设置模块匹配密码: AT+PSWD=1234\r\n
3–>设置从模式:串口调试助手上,将蓝牙A配置为主机模式: AT+ROLE=1\r\n
4–>设置波特率: AT+UART=9600,0,0\r\n(这个波特率看自己需要设置,我这里设置9600,方便与单片机对接)*
5–>可以检查一下模块设置是否成功: AT+PSWD? AT+ROLE? AT+UART
6–>模块A绑定模块B:串口调试助手A,模块A绑定模块B地址:AT+BIND=896db,2,0758\r\n【注意把地址的冒号换成逗号】


二、从机接线如下
B模块(将这个作为从机吧)
1–>恢复默认设置:AT+ORGL\r\n【\r\n即回车、换行,在串口调试助手上敲一个回车即可】
2–>设置模块匹配密码:AT+PSWD=1234\r\n(密码必须跟模块A的一致)
3–>设置从模式:串口调试助手上,将蓝牙B配置为从机模式:AT+ROLE=0\r\n
4–>设置波特率:AT+UART=9600,0,0\r\n
5–>可以检查一下模块设置是否成功:AT+PSWD? AT+ROLE? AT+UART

这样就算设置完了,两个模块重新上电一下,退出AT模式
然后就可以通过串口交互数据了,看
A--------->B

B---------------->A

接下来就看与单片机接线交互数据了。正在写代码,别着急,改天上传。。。

接下来继续写,首先,要想单片机之间通过蓝牙相互发送数据(其实就相当于两个单片机之间传输数据一样的)看,这是两个单片机之间的数据交互,蓝牙的话,不就相当于将有线转化成了无线,对吧!


图有些丑,但是能看的懂的(上面AT模式退出后,就不需要再次进入了,不用连接那根线了(EN / KEY ------->>>> AT模式使能脚))

那么,要实现功能该怎么做呢?
**1、**是不是先得让单片机(只要单片机就行)发送数据到串口(单片机通过串口发送数据就相当于单片机通过串口发送数据给蓝牙,蓝牙再发送过去)?
那我们就先写个简单的程序,让单片机打印数据到串口

#include<reg52.h>
#include<stdio.h>  #define uint unsigned int
#define uchar unsigned char
sbit KEY = P3^3; void uart(void)                 //串口通信初始化
{  SCON=0x40;                  //串口通信工作方式1  REN=1;                      //允许接收  TMOD=0x20;                  //定时器1的工作方式2  TH1=0xFD,TL1=0xFD;        TI=1;                       //这里一定要注意  TR1=1;                      //打开定时器
}
void main(void)
{ uint i;uchar a;a = 1; uart();  while(1)  {  if(KEY == 0)//按键按下一次,发送一次数据{i++;if(i > 20000)//相当于延时消抖{printf("a=%bd",a);//打印a=1;到串口;**注意:%前面加b**i = 0;}             }            }
}//打印效果如下

为什么要这么做?(%d中间加b)
看博主的: https://blog.csdn.net/guanjianhe/article/details/84332773


**2、**测试没问题,串口输出 “a=1” 后, 再将蓝牙A(主机)接至单片机,接法如下

3、将蓝牙B(从机)接至USB转TTL,如下图

再次打开串口助手,看看从机B是否输出 “a=1",效果如下

那么就差最后一步了,明天接着写
又是新的一天,发现自己变帅了哈哈!!!!(废话不多说,来看看接下来的调试过程)
4、将从机模块B改成与单片机B连接的形式(在这就不说怎么接线了,自己看上边吧,还是四根线),此时的将下边的程序烧录到单片机B,单片机B就可以接收到数据 “a=1”
然后将这接收到的完整的数据发送回串口,并打印到电脑。

#include <reg52.h>#define uchar unsigned char
#define uint  unsigned intuchar num;void UART_init()
{TMOD = 0x20;      //T1工作模式2  8位自动重装TH1 = 0xfd;TL1 = 0xfd;   //比特率9600TR1 = 1;      //启动T1定时器SM0 = 0;SM1 = 1;         //串口工作方式1 10位异步REN = 1;        //串口允许接收EA  = 1;       //开总中断ES  = 1;     //串口中断打开
}
void main()
{UART_init(); //串口初始化while(1);
}void UART() interrupt 4
{if(RI) //检测是否接收完成{num = SBUF;   //num 取出接收缓存器的值P1 = SBUF;         //为了直观,加了LED(方便判断单片机是否收到数据)RI = 0;SBUF = num;   //接收的数据直接发送回串口while(!TI);TI = 0;}
}


好了,要想实现温湿度等数据交互,就看你自己的了,嘿嘿!!看完文字,你也变帅了不是?

关于两个HC05通讯的实际操作流程相关推荐

  1. (3)arduino完成两个HC-05蓝牙模块间的配对,实现简单的无线串口通讯

    (3)arduino完成两个HC-05蓝牙模块间的配对,实现简单的无线串口通讯 一.准备工作 二.蓝牙配置 1.从模块配置 (1)接线 (2)进入AT模式 (3)打开串口进行配置 2.主模块配置 (1 ...

  2. 两个HC-05蓝牙模块互相绑定构成无线串口模块 1

    文章目录 关于HC-05蓝牙模块 工作模式 获取蓝牙模块地址 两个蓝牙模块互相绑定 对A模块的设置: 对B模块的设置: HC蓝牙模块参考资料 SPP蓝牙模块参考资料 关于HC-05蓝牙模块 蓝牙模块B ...

  3. 两个hc05蓝牙模块在两块单片机上通信(附完整代码)

    目录 第一步:进入AT模式 第二步:同时插在电脑上实现通信 第三步:单片机上通信 代码链接 所需材料:两个hc05蓝牙,两个usb转串口模块,两块单片机 第一步:进入AT模式 接线图如下所示 HC-0 ...

  4. Arduino实现两个HC-05蓝牙模块控制蓝牙小车

    特此声明,本文所有内容是在参考以下链接的基础上整理并开发的,所有代码均验证无误.如果你想使用或者发表,请您声明出处. 一,实验目的. 本文使用两个Arduino UNO板子,两个HC-05,分别作为主 ...

  5. 信捷XDPLC和两台变频器通讯程序,已经实机量产运行

    信捷XDPLC和两台变频器通讯程序,已经实机量产运行. 实时读取变频器频率,故障代码,多段速度通讯实时动态更新. 基本上各品牌变频器都可以控制参照用. 最大可控32台. 走串口485.MODBUS R ...

  6. 三菱modbusRTU通讯实例_「笔记」信捷plc应用,两个plc通讯篇

    本文转自微信公众号:自动化电气工程师技术交流与分享 关键词:Modbus协议本文目标:以XC5系列为例,完成两个信捷PLC基于Modbus RTU协议的通讯. 本文目录 一,通讯前须知 二,参数设置 ...

  7. e5cc温控仪通讯参数设定_自动化工程师:施耐德 PLC常见两种编程通讯控制实例,收好不谢...

    1.第一种是采用 UNTLW1协议进行联机编程: 参数设置与通讯配置检查:用 Premium的专用编程电缆"TSXPCX3030-C(USB接口,有专门的驱动)"通过调试机与CPU ...

  8. 避坑:关于两个HC-05主从一体蓝牙模块互连,连不上问题

    注意事项:        一.首先,一定要买6脚的HC-05主从机一体蓝牙模块,因为要实现两个蓝牙互连,所以一定得一个做主机,一个做从机.        二.接下来就是固定配置步骤,基本跟网上其他博客 ...

  9. python使用蓝牙与HC05通讯(pybluez调用socket、模拟串口)

    HC05的使用 参考本人上一篇博文 http://t.csdn.cn/JQW5T 模拟串口 在linux下,先连接上你的HC05,查询MAC地址,然后运行以下指令 sudo rfcomm bind 0 ...

  10. python与施耐德plc通讯_自动化工程师:施耐德 PLC常见两种编程通讯控制实例,收好不谢...

    1.第一种是采用 UNTLW1协议进行联机编程: 参数设置与通讯配置检查:用 Premium的专用编程电缆"TSXPCX3030-C(USB接口,有专门的驱动)"通过调试机与CPU ...

最新文章

  1. 指定服务器无效,安装sqlserver2008r2 服务器配置,服务帐户配置出错,提示Sql server服务指定的凭据无效...
  2. 第十、十一周项目一-点-圆-圆柱类族的设计(2)
  3. linux下前一天时间格式
  4. Oracle配置OneMap中的sql数据库问题及解决方案
  5. 在一个JS文件中包含中文字符串,通过innerHTML输出后中文乱码?
  6. HDU4372(第一类斯特林数)
  7. iOS 文件和数据管理 (可能会删除本地文件储存)
  8. 2012.2.9日晚亚马逊的一个错误链接截图
  9. List实现类性能和特点分析
  10. BlogEngine.Net架构与源代码分析系列part5:对象搜索——IPublishable与Search
  11. 持续输出|我的 2019 年
  12. java大牛博客链接合集
  13. 黑群晖DSM 6.1网卡支持列表
  14. latex怎么看论文字数_如何确定latex文档字数
  15. 日志过滤实体中的属性
  16. mybatis插入数据到sqlserver报异常The statement must be executed before any results can be obtained.
  17. windows应用启动java -jar
  18. 超详细的Python实现百度云盘模拟登陆(模拟登陆进阶) 1
  19. Android 开发2048 无法显示gameView、Card
  20. linux 文件缓存大小设置,Linux文件读写机制及优化方式

热门文章

  1. sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧
  2. Mac 通过adb安装apk文件
  3. linux一键安装lamp教程,CentOS7下LAMP一键安装包教程
  4. pynq z1+ov5640
  5. Send函数和Recv函数解析
  6. 人员能力模型及能力培养设计
  7. knockout的监控数组实现 - 司徒正美
  8. yasm,nasm的关系
  9. Android实战【仿探探陌生社交APP】
  10. 【毕业设计】深度学习 YOLO 实现车牌识别算法