【mcuclub】蓝牙模块-ECB02
1、实物图
2、原理图
3、简介
ECB02 蓝牙模块是一款支持低功耗蓝牙协议的串口透传模块;模块具有小体积、高性能、高性价比、低功耗、平台兼容性强等优点;可以帮助用户快速掌握蓝牙技术,加速产品开发。模块已兼容的软件平台包括:IOS 应用程序、 Android 应用程序、PC 电脑应用程序、微信支付宝小程序等。MCU通过串口连接模块,可与手机、平板、PC 电脑进行数据通讯,轻松实现智能无线控制和数据采集。模块广泛应用在智能家居、医疗设备、共享售货机等领域。
4、注意事项
①每次发送的数据包长度最大为244字节
②传输距离:蓝牙传输距离受发射功率、电源质量、天线类型、天线方向、周围环境等因素影响,范围十几米到几十米。如果希望增加蓝牙传输距离,可以增加发射功率,使用电源质量比较好的 LDO 电源,选择大尺寸的 PCB 天线或外置的天线,在空旷的地方测试。如果希望蓝牙传输距离尽量很短,可以减小发射功率,使用最小体积的贴片陶瓷天线。
③蓝牙默认的波特率是115200,如果需要更改,需要使用AT指令。
5、引脚介绍
名称 | 注释 |
STA |
蓝牙已连接,输出高电平(3.3V) 蓝牙未连接,输出低电平 |
RXD | 串口接收,连单片机的发送引脚 |
TXD | 串口发送,连单片机的接收引脚 |
GND | 地 |
VCC | 3.6V - 6V |
EN |
睡眠引脚,3.3V 电平 高电平或悬空:模块进入睡眠模式 低电平:模块退出睡眠模式 如果不需要低功耗,可以直接接地 在睡眠模式下,模块串口只能发数据,不能收数据 MCU 可以通过 GPIO 控制模块进入或退出睡眠模式 |
注意:
蓝光 LED 指示灯
蓝牙未连接:2 秒闪烁一次
蓝牙已连接,notify 关闭:1 秒闪烁一次
蓝牙已连接,notify 开启:200 毫秒闪烁一次
6、通信方式(串口通信)
串口全称叫做串行接口,通常也叫做 COM 接口,在串行通信中,数据在1位宽的单条线路上进行传输,一个字节的数据要分为8次,由低位到高位按顺序一位一位的进行传送。串行通信的数据是逐位传输的,发送方发送的每一位都具有固定的时间间隔,这就要求接收方也要按照发送方同样的时间间隔来接收每一位。不仅如此,接收方还必须能够确定一个信息组的开始和结束。MCU和蓝牙模块就是通过串口进行通信的,通过RXD和TXD交叉相连进行数据传输,当然,要保证有一个共同的参考电平,也就是GND相连。MCU自带一路UART,UART外设就是串口的一种,UART 全称是 Universal Asynchronous Receiver/Trasmitter,也就是异步串行收发器。
在异步通信中,收发双方取得同步是通过在字符格式中设置起始位和停止位的方法来实现的。具体来说就是,在一个有效字符正式发送之前,发送器先发送一个起始位,然后发送有效字符位,在字符结束时再发送一个停止位,起始位至停止位构成一帧。停止位至下一个起始位之间是不定长的空闲位,并且规定起始位为低电平(逻辑值为0),停止位和空闲位都是高电平(逻辑值为1),这样就保证了起始位开始处一定会有一个下跳沿,由此就可以标志一个字符传输的起始。而根据起始位和停止位也就很容易的实现了字符的界定和同步。
异步通信规定传输的数据格式由起始位(start bit)、数据位(data bit)、奇偶校验位(parity bit)和停止位(stop bit)组成,异步通信数据格式如下图所示(该图中未画出奇偶校验位,因为奇偶检验位不是必须有的,如果有奇偶检验位,则奇偶检验位应该在数据位之后,停止位之前)。
空闲位:数据线在空闲状态的时候为逻辑“1”状态,也就是高电平,表示数据线空闲,没有数据传输。
起始位:当要传输数据的时候先传输一个逻辑“0”,也就是将数据线拉低,表示开始数据传输。
数据位: 数据位就是实际要传输的数据,数据位数可选择 5~8 位,我们一般都是按照字节传输数据的,一个字节 8 位,因此数据位通常是 8 位的。低位在前,先传输,高位最后传输。
奇偶校验位: 这是对数据中“1”的位数进行奇偶校验用的,可以不使用奇偶校验功能。
停止位:数据传输完成标志位,停止位的位数可以选择 1 位、 1.5 位或 2 位高电平,一般都选择 1 位停止位。
波特率:波特率就是 UART 数据传输的速率,也就是每秒传输的数据位数,一般选择 9600、115200 等。
7、常用AT指令
①波特率:默认波特率是115200
查询波特率:AT+UART?\r\n
设置波特率:AT+UART=2\r\n ——设置成9600
AT+UART=4\r\n ——设置成115200
②连接状态通知:默认开启
查询连接状态通知:AT+CONNOTIFY?\r\n
设置连接状态通知:AT+CONNOTIFY=0\r\n ——关闭
AT+CONNOTIFY=1\r\n ——开启
注:蓝牙连接状态发送改变时,默认会有提示,包括”CONNECT OK”、“CONNECT FAIL”、“DISCONNECT”和“SCANNING......”;其中“SCANNING......”只有在主机模式并绑定了从机后才会出现
③两个蓝牙进行连接通信
方法一:连接序列号
AT+ROLEMODE?\r\n ——查询主从机配置(1:始终是主机模式 2:始终是从机模式)
AT+ROLE=1\r\n ——设置主机模式
AT+ROLE=2\r\n ——设置从机模式
将一个蓝牙设置成主机模式,另一个设置成从机模式
设置成主机的蓝牙通过
AT+SCAN\r\n ——查看从机设备信息
注:+SCAN:X,X是搜索到的设备数量,最大值是30。" 0,@22021626B8,2022021626B8,-23 ",第一个参数是序列号,第二个参数是蓝牙的名字,第三个参数是蓝牙的MAC地址,第四个参数是蓝牙的信号强度。(以@开头的蓝牙名字就是从机蓝牙)
AT+CONNECT=X\r\n ——连接设备(X是设备在列表中的序列号,这条命令仅主机模式有效)
注意:这种连接方式无法实现重新上电后自动连接
方法二:绑定蓝牙名称
AT+ROLEMODE?\r\n ——查询主从机配置(1:始终是主机模式 2:始终是从机模式)
AT+ROLE=1\r\n ——设置主机模式
AT+ROLE=2\r\n ——设置从机模式
将一个蓝牙设置成主机模式,另一个设置成从机模式
设置成从机的蓝牙通过
AT+NAME? \r\n ——查询蓝牙名字(默认以@开头)(这条命令仅从机模式有效)
设置成主机的蓝牙通过
AT+BONDNAME=X\r\n ——设置绑定从机蓝牙名字(这条命令仅主机模式有效)
注意:这种连接方式可以实现重新上电后自动连接
方法三:绑定MAC地址
AT+ROLEMODE?\r\n ——查询主从机配置(1:始终是主机模式 2:始终是从机模式)
AT+ROLE=1\r\n ——设置主机模式
AT+ROLE=2\r\n ——设置从机模式
将一个蓝牙设置成主机模式,另一个设置成从机模式
设置成从机的蓝牙通过
AT+MAC? \r\n ——查询MAC地址(这条命令仅从机模式有效)
设置成主机的蓝牙通过
AT+BONDMAC=X\r\n ——设置绑定从机蓝牙MAC地址(这条命令仅主机模式有效)
注意:这种连接方式可以实现重新上电后自动连接
8、程序解析
/**********************************
函数定义
**********************************/
/****
*******串口初始化函数,11.0592MHz bps:9600
*****/
void Uart_Init(void)
{
TMOD&=0x0F; //清零 T1 的控制位
TMOD|=0x20; //配置 T1 为模式 2
SCON=0x50; //配置串口为模式 1
TH1=0xFD; //配置 T1 重载值
TL1=0xFD; //初值等于重载值
TR1=1; //启动 T1
ES=1; //打开串口中断
EA=1; //打开总中断
}
9、流程设计
首先配置定时器1,先清除定时器1的控制位,设置定时器1为模式2,即8位自动重装载定时器,当溢出时将TH1存放的值自动重装入TL1。然后配置串口为模式1,即8位UART,波特率可变。接下来配置定时器1的重装载值,使得最终的波特率为9600。最后启动定时器1,打开串口中断以及打开总中断。串口初始化完成后,如果接收到数据,则触发串口中断,从SBUF寄存器中获取接收值,清除接收中断标志位,等待下次接收。如果需要发送数据,则调用发送数据函数,只需将数据赋值到SBUF中即可,然后清除发送中断标志位。
【mcuclub】蓝牙模块-ECB02相关推荐
- 蓝牙模块hc05原理图_使用步进电机和Android App的蓝牙控制迷你升降机
背景知识视频教程 使用App Inventor创建Android应用viadean.com Arduino微控制器:学习Arduino制作项目 - 国外课栈viadean.com Arduino ...
- 蓝牙模块引起电路干扰
简 介: 本文讨论了在实际中电子信号处理电路中可能会受到高频电磁波干扰的情况.这些情况在普通的课堂中和教科书中往往都会被省略掉.图4电路中所增加的那些看似对于普通信号处理无关的外围电阻.电容,却在保证 ...
- 常见蓝牙模块介绍和AT指令
目录 一.HC-05主从一体蓝牙模块 二.HC-06从机蓝牙模块 三.低功耗BLE蓝牙4.0模块(cc2540或cc2541) 四.JDY-10 蓝牙4.0 BLE模块 五.蓝牙模块LAYOUT注意 ...
- 蓝牙模块与电脑无线通信--AD测量大电压
单片机的引脚最大输入电压一般为3.3V或者5.0V,电流是25ma,40ma 而电池一般有3.3V-36V不等,电流也是好几A,超过5.0的电池一接到单片机 AD口,可能和三星手机一样.所有我们需要从 ...
- Linux卸载蓝牙模块,Linux 下调试低功耗蓝牙的笔记
蓝牙4.0版本推出了低功耗规范,简称BLE (Bluetooth Low Energy),很多小型设备,例如小米手环,都是使用低功耗蓝牙.要与这类模块连接,主设备的蓝牙模块必须支持低功耗,例如inte ...
- [TPYBoard - Micropython之会python就能做硬件 7] 学习使用蓝牙模块及舵机
转载请注明:@小五义 http://www.cnblogs.com/xiaowuyi 欢迎加入讨论群 64770604 一.实验器材 1.TPYboard V102板 一块 2 ...
- 低功耗蓝牙onscanresult 出来名字为空_浅析BLE5.0蓝牙模块在智能家居的运用
随着物联网渗透到各个行业领域,也使得各个领域对无线模块BLE蓝牙模块的需求激增.BLE蓝牙模块作为无线通信模块的一种,目前在智能家居.智能穿戴.智慧医疗.蓝牙室内定位等领域已经得到广泛应用.今天,小编 ...
- 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...
蓝牙模块作为一种能提供蓝牙通信,进行蓝牙互联的通信模块,之所以能够不用考虑使用位置或使用方向就可以顺利完成短距离的数据传输,就是因为有一个很重要的天线零部件承担着发射和接收指令的使命,由于目前的技术尚 ...
- 单片机蓝牙烧录_蓝牙模块与单片机如何连接?
蓝牙模块与单片机如何连接? 首先我们来看看蓝牙模块 蓝牙模块HC-05: TX连接单片机P3.0口,RX连接单片机P3.1口. 在蓝牙模块连接到单片机上前,首先通过USB-TTL转接器,连接到电脑上后 ...
最新文章
- 【FFmpeg】FFmpeg常用基本命令
- 调制的缺点_什么限制了光模块内调制的性能?
- 转:ECharts图表组件之简单关系图:如何轻松实现另类站点地图且扩展节点属性实现点击节点页面跳转...
- ubuntu 环境下调试mysql源码_Linux中eclipse调试mysql源代码
- php如何解决报错,php 启动报错如何解决_PHP教程
- Ubuntu16.04安装Caffe(CPU Only)
- 一种增强的md5加密算法
- 计算机视觉CV中RANSAC算法的学习笔记~
- oracle自定义函数返回一个表,oracle 自定义函数 返回一个表类型
- 生成xml报文方法并输出
- php libev扩展使用
- Skin++ For VS2010 使用教程
- RGB YUV XYZ HSL CIE1976L*a*b* LCH的色彩空间图 色彩空间 转换公式
- html邮件的排版问题
- 机器学习笔记(四)——正则化
- php手机编程ios,在iOS上实现生产力级别PHP编程
- 融云会话界面自定义功能_Android快速集成融云
- vagrant 强制关机 Warning: Authentication failure. Retrying...
- 【unity 保卫星城】--- 开发笔记01(飞机移动)
- (转)腾讯区块链方案白皮书:底层技术平台及五大场景解决方案
热门文章
- python flask实战订餐系统微信小程序-60nginx + uwsgi 实现多进程访问
- 关于高精度交流恒流源设计是怎样的?
- 复化梯形公式c语言实验,实验4_数值积分与数值微分(完成版).doc
- ssh: connect to host 192.168.1.20 port 22: No route to host解决方案
- 速度收藏!史上最全Spring 面试题 92 问!【附答案】高清PDF下载
- 最细RGB颜色表,建议收藏
- GPS定位中的误差源及解决方法
- Almeida–Pineda algorithm
- linux查看文件内容常用命令
- ArcMap符号样式制作