完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
51单片机与HC-05蓝牙模块实现简单通讯
我也是刚刚实现单片机和蓝牙模块简单通讯,现在趁热打铁一步一步详细记载我是怎么实现得。废话不多说 冲!!! 知识储备: 首先实现他们之间的通讯只需要会串口通讯就行了。 基本原理: 就是手机给蓝牙发数据 蓝牙在通过TXD给单片机 单机用串口RXT到命令 如何接线 我所用的蓝牙模块是HC-05 一共有6个引脚 在我实现通讯只用了4引脚(RXD,TXD,GND,VCC)好的 这个蓝牙模块里面有两种模式,两种模式,两种模式,这两种模式的连接线是不一样的 - 蓝牙设置模式 第一种模式是蓝牙设置模式:简单的说就是给设置名字 密码 波特率等等 接线:VCC–VCC GND–GND RXD–单片机的RXD(P3.0) TXD–单片机的TXD(P3.1)。就完成了。 - 通讯模式 第二种模式就是通讯模式:简单的说就是我们手机给蓝牙发数据 这就是通讯模式 接线:VCC–VCC GND–GND RXD–单片机的TXD(P3.1) TXD–单片机的RXD(P3.0)。就是跟上面相反。 线连接完了我们就可以通讯的 没错 就这么简单 通讯之前 还得先了解蓝牙两种模式 蓝牙两种模式 第一种模式是蓝牙设置模式: 蓝牙设置模式 为了证明这个蓝牙有没有坏 我们就可以先进入设置模式 现在进入设置模式 就是:在连接蓝牙电源之前把蓝牙上面的黑色按钮按下 按下 按下,在连接电源 这是你会发现有个蓝色的灯是2秒钟闪一次 好的 那说明你已经成功了。 1.打开串口 2.勾选发送新行3.发送 AT 若返回ok 说明就很ok 若没有返回ok那恭喜你 中奖了 退货吧 前提是线要按照第一种连接方法。返回不是ok说明改下波特率就行 2.确认串行调试工具和蓝牙模块可以正常通信后,发送以下指令 AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)AT+CMODE=1 (蓝牙模块可以和任意设备连接)AT+UART=9600,0,0 (设置波特率9600)AT+NAME=HC05 (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)AT+PSWD=1234 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)以上,蓝牙串口通通返回OK 。 断电,再上电,进入通讯模式 注意线要按照要按照第二种接法 第二种蓝牙通信模式 通信模式 进入蓝牙模式 灯会一秒钟闪两下 手机下载一个appSPP蓝牙串口。 打开软件连接蓝牙 连接成功 灯会变成连闪两下 好的现在可以通讯了。为了看出效果 写一些逻辑代码即可 代码模块 #include 《REGX52.H》unsigned char Value;//注意我这是11.0592MHz晶振 你们看看自己是多少兆的void UART_init() //9600bps@11.0592MHz{ PCON |= 0x80; //使能波特率加倍 SCON = 0x50; //8位数据 TMOD &= 0x0F; //清除定时器1模式 TMOD |= 0x20; //设定定时器8为自动 TL1 = 0xFA; //设定初始值 TH1 = 0xFA; //设定初始值 ET1 = 0; TR1 = 1; EA = 1; ES =1 ; }void main(){ Uart_Init() ; while(1) { if(Value==0x31) { P2_1=1; } }}void UART_Routine() interrupt 4{ if(RI==1) { P2_1=0; Value=SBUF; RI=0; } } 编译 下载程序即可 用实际发送任意为开灯 发送0x31是关灯 灯在P2_1口 |
|
|
|
只有小组成员才能发言,加入小组>>
2381 浏览 0 评论
921浏览 2评论
557浏览 1评论
321浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-18 11:54 , Processed in 0.944706 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号