电脑蓝牙模块下载?项目分享|小师弟手把手教你用蓝牙模块

这篇文章给大家聊聊关于电脑蓝牙模块下载,以及项目分享|小师弟手把手教你用蓝牙模块对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

嵌入式蓝牙串口通讯模块(简称蓝牙模块)具有两种工作模式:

命令响应工作模式和自动连接工作模式。

当模块处于命令响应工作模式(或者AT模式)时能才能执行AT命令,用户可向模块发送各种AT指令,为模块设定控制参数或发布控制命令。(AT指令就是我们PC与一些终端设备(例如蓝牙,WiFi模块)之间进行通信的,配置这些终端设备参数的一套指令。)

在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输。主模式:该模块可以主动搜索并连接其它蓝牙模块并接收发送数据。从模式:只能被搜索被其它蓝牙模块连接进行接收发送数据。回环:蓝牙模块就是将接收的数据原样返回给远程的主设备。

二、开发工具

1.USB转TTL模块(可用CH340),蓝牙模块(HC-05),PC端串口助助手。

2.蓝牙模块与USB转TTL模块的接线情况就是VCC-VCC,GND-GND,RXD-TXD,TXD-RXD,有的蓝牙模块只有四个引脚,而且我们见到的大多数蓝牙模块都是四个或者只需要用到四个引脚。

3年嵌入式物联网学习资源整理分享:C语言、Linux开发、数据结构;软件开发,STM32单片机、ARM硬件开发、物联网通信开发、综合项目开发教程资料;笔试面试真题。点击下方插件免费领取↓↓↓嵌入式物联网学习资料(头条)

3.手机需要安装一个可以进行蓝牙通信的APP,一般直接在你手机的应用商店搜蓝牙串口就可以下载相关APP,如“串口调试助手”。

三、蓝牙模块初始化

这里以蓝牙模块HC-05为例,蓝牙模块可能每个人买到的不一样,但是用法都相近,可以作为参考,建议你在哪里买的模块就找对应的卖家找到对应的蓝牙模块中文数据手册,一般来说里面都有对应的AT指令集。这里要注意的是如果你发送对应的指令,在硬件连接都正确的情况下如果串口调试助手不能得到回应,那么很可能是你的AT指令集是错的,因为不同的蓝牙模块对应的蓝牙AT指令集是有差别的。

HC-05蓝牙模块引脚说明:

蓝牙模块自带一个状态指示灯1.在上电时,将KEY脚悬空或接地,红灯1s一次快速闪烁,表示进入可配对模式。2.在上电之前,按住黑色小设置按钮不放,同时KEY接高电平,上电,灯2s一次慢速闪烁,表示进入AT模式,进入AT模式可以对蓝牙模块进行设置。3.配对成功模式,快速闪烁。

这三点很重要,蓝牙模块只有进入了AT模式才能发送AT指令集,很多小白以为只要接上USB转TTL模块插到电脑,打开串口调试助手就可以发送指令。这是不可以的。切记!!!

四、单片机串口程序

这里以51单片机为例,蓝牙串口的程序最重要的就是配置串口定时器,这里将定时器相关的代码贴出来,大家最好按照这种方法配置,经过多次建议程序稳定。

串口初始化1voidUsartinit()//初始化2{3TMOD=0x21;//设置定时器1的工作方式200100000GATEC/T8位初值自动重装8位定时器4PCON=0x80;//波特率加倍电源管理寄存器5TH1=0xf3;//给定时器重装初值6TL1=0xf3;//这里的波特率必须加倍不加倍的话通讯不成功本人目前还不知道原因7//由于开发板使用的晶振频率是12M,非标准频率,在设置波特率时很容易产生误差,而导致串口通信出现乱码或者失败8//目前来说,选择波特率4800,SMOD=1波特率加倍的方式,误差率仅为0.16%,为12M晶振中最小的误差9TH0=0XEC;//5ms定时10TL0=0X78;11TR0=1;12ET0=1;13TR1=1;//开定时器114SM0=0;//选择串口工作方式1,常用15SM1=1;16REN=1;//开串口接收此时接收器所选择的波特率16倍速率采样RXD移交的电平开始接收信息17ES=1;//串行中断总开关18EA=1;//开总中断19}

相关配置程序注释已相当明白。

主函数1ucharflag,i,receive;2ucharcodetable1[]=&34;;3ucharcodetable2[]=&34;;4voidmain()5{6Usartinit();//调用初始化函数进行初始化7while(1)8{9if(flag==1)//不断的检测标志位是否被置1被置1说明已经执行了中断服务程序,即已经接数据,否则一直检测flag的状态10{11switch(receive)12{13case1:14ES=0;//接下来要发送数据先要使ES=0关闭串口中断等数据发送完后再打开串口中断15for(i=0;i<2;i++)16{17SBUF=table1[i];18while(!TI);//等待是否发送完成因为发送完成后TUI会有硬件置119TI=0;//清除发送完成标志位手动清020}21ES=1;22flag=0;23break;24case2:25ES=0;26for(i=0;i<4;i++)27{28SBUF=table2[i];29while(!TI);30TI=0;31}32ES=1;33flag=0;34break;35}36}37}38}39voidUsart()interrupt4//一旦有数据接入,串行口中断触发40{41receive=SBUF-48;//当REN为1时开始接收数据将接收到的值赋予receive这里的是ACSII所以要减去4842RI=0;//当RI=0将接收数据存入SBUF寄存器中清除接收中断标志位有内部硬件置1,项CPU发出中断请求在中断服务程序中,必须用软件将其清零,取消此中断申请43flag=1;//将标志位置1这个是方便在主程序中查询判断是否已经接收到数据44}

以上是单片机的程序,由于51单片机只有一对RXD和TXD引脚,故先将程序下载到单片机后再将蓝牙模块的四个引脚接到单片机的RXD和TXD引脚,以后每次下载程序是都要这样操作,但不要嫌麻烦。

五、手机端操作

在安卓手机的应用商店搜索“蓝牙调试助手”,我的应用商店下载的是“蓝牙调试器”

在没有连接成功蓝牙时,蓝牙上面的红灯一直在闪烁,当连接成功后,红灯停止闪烁,每发送一条指令,电脑的串口调试助手就会收到手机端发送的消息。

原文标题:项目分享|小师弟手把手教你用蓝牙模块

如果你还想了解更多这方面的信息,记得收藏关注本站。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平