蓝牙模块学习笔记.docVIP

  • 28
  • 0
  • 约 13页
  • 2016-08-16 发布于重庆
  • 举报
蓝牙模块学习笔记

蓝牙模块学习 刚拿到蓝牙模块,心中有点小激动啊; 民用级:HC-05,HC-06(HC-06-M,HC-06-S) HC-05-D,HC-06-D(是带底板的模块,主要是用户用于测试和评估) 本文介绍的为HC-06蓝牙串口模块。 蓝牙串口模块用于把串口转换为蓝牙,这种模块工作的时候分为主机和从机,其中偶数命名的型号出厂时就确定了是从机或者是主机,并无法更改。奇数命名的型号可以用户自己通过 AT指令修改模块为主机或者从机。 主机:HC-06-M , M=master 从机:HC-06-S , S = slaver 串口模块的使用,是不需要驱动的,只要是串口就可以接入,配对完毕即可通信,模块与模 块的通信需要至少 2 个条件: 1、 必须是主机与从机之间 2、 必须密码一致 (密码:1234) 主机: 记忆最后一次配对过的从机,并只与该从机配对,直到 KEY(26 脚)高电平触发时放弃记忆,26 脚默认应该接低电平。 配对方式: 主机自动搜索从设备进行配对。 典型方式:在一定条件下,主从之间自动配对 AT 模式: 配对前就是 AT 模式, 配对完毕后透明通信 图 1 是 HC-06 图片及主要引脚 现在你手中拿到的HC-06引出了四个引脚,分别为VCC、GND、TXD、RXD。四个引脚分别对应单片机的电源5V或3.3V;GND接地;TXD、RXD交叉连接(对应单片机的P3^0,P3^1)。 连接好,单片机上电,此时蓝牙模块上led闪烁,表示尚未连接其他蓝牙设备。此时用手机蓝牙搜索,可以搜索到HC-06.点击连接,输入pin密码则可以连接。 连接好后,利用蓝牙串口助手就可以对蓝牙模块通信了,编程也就可以把蓝牙当作普通串口来对待。 注意编写好程序后,向单片机烧录时,必须将TXD、RXD拔出才能烧写!!! 问题:串口发送字符串时,最后没有标志可寻。可以将字符串接收到数组中,发送数据到12864,检测是否到 ’\0’ ,如果检测得到,将标识符flag置为1;串口中断服务程序中,检测到flag为1时,这证明数据显示成功。此时应当清屏! 清屏方法:while(Tem[i]!=\0) { Tem[i]= ; i++; } /*********************************************************** STC89C52RC与HC-06蓝牙连线: RXD TXD TXD RXD 其他连线: P2.0、P2.1、P2.3分别接一个指示灯 ***********************************************************/ #include reg52.h #include intrins.h unsigned char tmp; unsigned int c=0; sbit led1=P1^0; //指示灯0 sbit led2=P1^1; //指示灯1 sbit led3=P1^2; //指示灯2 sbit beep=P3^2; //蜂鸣器 void init(); //串口初始化 void send(unsigned char a); //单字节发送函数 void ctrl(); //接收处理函数 void delay(unsigned int x) { unsigned int i,j; for(i=x;i0;i--) for(j=110;j0;j--); } void main() { init(); while(1) { if(RI==1) // 是否有数据到来 { RI = 0; tmp = SBUF; // 暂存接收到的数据 ctrl(); } } } void init() //串口初始化 { ES=0; //关中断 SCON = 0x50; // REN=1允许串行接受状态,串口工作模式1, //10位UART(1位起始位,8位数据位,1位停止位,无奇偶校验),波特率可变 TMOD = 0x20;

文档评论(0)

1亿VIP精品文档

相关文档