单片机之蓝牙通信

目录

蓝牙介绍

HC05蓝牙模块

HC05参数

HC05引脚

各个引脚功能

HC05模块的作用

工作模式

配置模式

引脚接线

用AT指令进行配置

常用的AT指令

正常模式

测试步骤

烧录的程序

前言:

keil文件

蓝牙介绍

  • 蓝牙:Bluetooth,其是低成本的、近距离的无线通信;一般距离在10m以内,其是位于固定和移动设备之间建立通信环境提供的一种无限技术连接。
  • 蓝牙技术在2.4GHz的波段运行,这个波段是一种无需申请许可证的,用于工业,科技医学等领域的无线电波段。

HC05蓝牙模块

前言:

  • 我们为了利用蓝牙实现无线通信,需要有一个具备蓝牙功能的模块。
  • HC05是一款高性能的主从一体蓝牙串口模块,可以同各种蓝牙功能的电脑、蓝牙主机、手机等智能中端进行配对,该模块支持非常宽的波特率(4800——1382400)并兼容5V或3.3V单片机系统,使用非常灵活方便

HC05参数

注意:HC05蓝牙模块出场默认烧录的就是9600的波特率,默认为从机模式。

HC05引脚

注意:从图中可以看出,蓝牙模块一共有6个引脚,经过测试单片机只需要使用图中记得这4个引脚即可。

各个引脚功能

注意:最后一个STA引脚配对状态输出我们一般不连,因为通过手机就可以看出配对成功与否了。

HC05模块的作用

  • HC05蓝牙模块相当于一个中转,手机发出的数据通过蓝牙模块接收到后又传到了51单片机的RXD串口;51单片机TXD串口发过来的数据通过蓝牙接收后又传给了手机。
  • 手机和蓝牙模块利用的是蓝牙和蓝牙的无线通信,蓝牙模块和51单片机利用的是串口通信;因此,蓝牙模块的发送引脚要接单片机的接收引脚,蓝牙模块的接收引脚要接单片机的发送引脚。

工作模式

配置模式

前言:

  • 配置模式用来设置主从机、波特率、密码、连接等一系列信息(使用AT指令)其中需要我们设置的是波特率,主从机以及密码。其具有断电保存的功能,所以我们一般只需要配置一次。
  • 进入配置模式需要使用USB转TTL模块
引脚接线
  • 蓝牙VCC:接电源(3.3V——5V)
  • 蓝牙GND:接地
  • 蓝牙TXD:接在usb转TTL模块的RXD
  • 蓝牙RXD:接在usb转TTL模块对应的TXD上
  • 蓝牙EN:接在3.3V电源

注意:进入配置模式后,灯每2秒闪烁一次。

用AT指令进行配置

前言:

  • 打开安可信串口调试助手,选好自己使用的串口、将波特率设置为配置模式固定的波特率38400,将发送信行选项勾选后就可以发送AT指令了。
  • 我们之后设置的波特率是正常模式的波特率,若我们再次进入配置模式,那么配置模式波特率还是38400
常用的AT指令
  • AT:检查串口是否正常工作
  • AT+ORGL:恢复出厂设置,若把模块设置乱了,使用此命令恢复默认值
  • AT+ROLE=设置内容:设置蓝牙模块为主机/推荐从机(0为从机,1为主机)
  • AT+CMODE=1:设置蓝牙模块可以与任意设备连接
  • AT+UART=波特率,0,0:设置正常连接模式蓝牙波特率,一般为9600
  • AT+NAME=蓝牙名称:设置蓝牙模块蓝牙名称,如HC-05
  • AT+PSWD=蓝牙密码:设置蓝牙的连接密码,如1234

注意:

  • 对于后面有=(也就是有配置选项的将=及后面的配置改为?就可以对该信息进行查询)
  • 模块配置具有断电保存的功能,所以我们一般只需要配置一次。
  • 使用该蓝牙模块时,推荐从上往下设置(将命令一步步执行)

正常模式

前言:当设置完配置模式一系列参数后,我们便可以进入正常模式,将蓝牙模块和另一个拥有蓝牙模块的设备进行通信,从而传递数据

测试步骤
  • 要想使用蓝牙模块,提前你必须把程序写进单片机后,拔掉串口跳线帽后再连接蓝牙模块,因为电脑与单片机和蓝牙连接的单品机串口是同一个串口,会出现冲突
  • 关于引脚接线和上面配置的引脚接线一样,只不过将usb转ttl模块换位51单片机,将蓝牙EN模块不接而已。
  • 烧录好的单片机连接HC05模块接好线并打开后会出现灯一直闪烁,就表示等待连接
  • 使用蓝牙配对前,先要将手机打开蓝牙,手机再打开SPP蓝牙串口软件进行搜索,找到设备后点击配对,然后输入自己设置的配对密码后和蓝牙模块配对成功
  • 配对成功后的蓝牙模块的红灯不再闪亮,并且可以通过手机向单片机发送数据进而控制单片机。

烧录的程序

前言:

  • 需求:利用蓝牙调试助手发送数据的方式,手机控制P2各个LED灯的亮灭,同时在调试器中展示向单片机发送的数据。
  • 显示接收和发送两个部分,接收采用接收中断的行式来接收数据,当接收到数据以后我们将接收到的数据发回到上位机。
  • P2接口控制LED灯,而LED等采用共阳极连接,你需要引脚给他低电平他才亮。

keil文件

#include <regx52.h>
unsigned char dat=0,flag=0;
void initscon(){
	SCON=0x50; //8位异步通信方式,允许接收数据
	TMOD=0x20; //配置波特率发生器T1,工作方式为2
	TH1=0xFD; //重置TL1
	TL1=0xFD; //设置初值
	ES=1;	//开启串口中断
	EA=1;	//开启总中断
	TR1=1;	//打开波特率发生器T1
}
void main(){
	initscon();
	while(1){
	if(flag){
		SBUF=dat; //向串口助手发送数据
		flag=0;
	}
	}
}
void scon_isr() interrupt 4
{
	if(TI){
		TI=0; //数据发送完清TI
	}
	if(RI){
		RI=0;
		dat=SBUF;	//接收串口助手发送的值
		switch(dat){
			case 1:P2_0=~P2_0;break;
			case 2:P2_1=~P2_1;break;
			case 3:P2_2=~P2_2;break;
			case 4:P2_3=~P2_3;break;
			case 5:P2_4=~P2_4;break;
			case 6:P2_5=~P2_5;break;
			case 7:P2_6=~P2_6;break;
			case 8:P2_7=~P2_7;break;
			default:P2=0xff;
		}
		flag=1;
	}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/539750.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Harmony鸿蒙南向驱动开发-Regulator接口使用

功能简介 Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统&#xff08;尤其是手机&#xff09;中&#xff0c;控制耗电量很重要&#xff0c;直接影响到电池的续航时间。所以&#xff0c;如果系统中某一个模块暂时不需要使用&#xff0c;就可以通过Regulato…

判断系统是debian、centos、Ubuntu的命令

要确认自己的Linux系统是基于Debian的还是其他发行版&#xff0c;你可以使用几种不同的方法。以下是几种常见的方法&#xff1a; cat /etc/os-releaselsb_release -acat /etc/issueunmae -a os-release文件 cat /etc/os-release&#xff1a;这个文件通常包含了关于你的操作系…

【centos】Redis离线安装配置教程

Linux 离线安装Redis配置教程 一、下载二、安装redis三、设置redis开机自启&#xff0c;并且添加到系统服务四、gcc安装 redis官网地址&#xff1a;https://redis.io/ 一、下载 【点击进入下载地址&#xff1a;http://download.redis.io/releases/】选择安装包&#xff1a;re…

【数据结构(五)】栈

❣博主主页: 33的博客❣ ▶️文章专栏分类:数据结构◀️ &#x1f69a;我的代码仓库: 33的代码仓库&#x1f69a; &#x1faf5;&#x1faf5;&#x1faf5;关注我带你学更多数据结构知识 目录 1.前言2.概念3.栈的使用4.栈的应用场景4.1有效的括号4.2逆波兰表达式4.3栈的压入弹…

直接扩展到无限长,谷歌Infini-Transformer终结上下文长度之争

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 不知 Gemini 1.5 Pro 是否用到了这项技术。 谷歌又放大招了&#xff0c;发布下一代 Transfor…

springboot同时支持jsp+vue页面启动

1、参考文档链接 参考上面文档边百度边改&#xff0c;现在可以了&#xff0c;分享下 2、Java项目目录结构 3、pom.xml内容 <?xml version"1.0" encoding"UTF-8"?><project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi&quo…

计算机网络 路由器基本配置

一、实验内容 1、按照下表配置好PC机IP地址和路由器端口IP地址 2、配置好路由器特权密文密码“abcd&#xff0b;两位班内序号”和远程登录密码“star” 3、验证测试 a.验证各个接口的IP地址是否正确配置和开启 b.PC1 和 PC2 互ping c.验证PC1通过远程登陆到路由器上&#…

【教学类-52-04】20240412动物数独(4宫格)空1-空15

作品展示 背景需求&#xff1a; 【教学类-52-03】20240412动物数独&#xff08;4宫格&#xff09;难度1-9 打印版-CSDN博客文章浏览阅读603次&#xff0c;点赞20次&#xff0c;收藏8次。【教学类-52-03】20240412动物数独&#xff08;4宫格&#xff09;难度1-9 打印版https://…

MATLAB | 怎样绘制更有立体感的柱状图

之前写了一篇文章说明了MATLAB图例可以自己diy&#xff0c;这次又有了diy的机会&#xff0c;我开发了一个简单的小工具&#xff0c;能够实现绘制伪3d的柱状图&#xff0c;大概效果如下&#xff1a; 使用说明 由于涉及的代码比较接近MATLAB底层的图形对象&#xff0c;有点东西还…

MVCC(解决MySql中的并发事务的隔离性)

MVCC 如何保证事务的隔离性&#xff1f; 1.排他锁&#xff1a;如一个事务获取了一个数据行的排他锁&#xff0c;其他事务就不能再获取改行的其他锁。 2.MVCC&#xff1a;多版本并发控制。 MVCC&#xff1a; 1.隐藏字段 1.DB_TRX_ID&#xff1a;最近修改事务的id。默认值从0开…

4.9总结(Stream流,方法引用概述 || 乘法逆元,组合数)

Stream流 基本概念&#xff1a;以更简便的方式操作集合数据的形式&#xff1b; Steam流的操作步骤&#xff1a; 获取Stream流 中间方法&#xff1a;去重&#xff0c;跳过&#xff0c;获取&#xff0c; 过滤&#xff0c; 合并流&#xff0c;转换类型&#xff1b; 终结方法&…

黑马鸿蒙学习5:渲染foreach

foreach是用来循环渲染界面用的&#xff0c;比如&#xff1a;语法是先定义一个数组&#xff0c;如上图&#xff1a; 其中的keygenerator&#xff0c;其实意思是说&#xff0c;如果要渲染的内容发生了变化&#xff0c;则由于有独特的标识&#xff0c;可以 减少渲染次数。 实例&a…

【linux深入剖析】深入理解基础外设--磁盘以及理解文件系统

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 前言1.磁盘物理结构2.磁盘…

【数据结构】04串

串 1. 定义2. 串的比较3. 串的存储结构4. 具体实现5. 模式匹配5.1 常规思路实现5.2 KMP模式匹配算法5.2.1 next数组计算5.2.1 代码计算next数组5.2.2 KMP算法实现 1. 定义 串(string)是由零个或多个字符组成的有限序列&#xff0c;又叫字符串。 一般记为s a 1 , a 2 , . . . ,…

软件供应链安全:寻找最薄弱的环节

在当今的数字时代&#xff0c;软件占据主导地位&#xff0c;成为全球组织业务和创新的支柱。它是差异化、项目效率、成本降低和竞争力背后的驱动力。软件决定了企业如何运营、管理与客户、员工和合作伙伴的关系&#xff0c;以及充分利用他们的数据。 挑战在于&#xff0c;当今…

【MVCC】深入浅出彻底理解MVCC

MVCC概述 MVCC&#xff08;Multi-Version Concurrency Control&#xff09;即多版本并发控制。主要是为了提高数据库的并发性能而提供的&#xff0c;采用了不加锁的方式处理读-写并发冲突&#xff0c;确保了任何时刻的读操作都是非阻塞的。只需要很小的开销&#xff0c;就可以…

电视盒子哪个好?2024口碑网络电视盒子排行榜

多年来电视盒子始终占据重要地位&#xff0c;功能上并没有受到影响。在这么多品牌中哪些电视盒子的评价是最好的呢&#xff1f;小编根据各大电商平台的用户评价情况整理了口碑最好的网络电视盒子排行榜&#xff0c;跟着小编一起看看市面上的电视盒子哪个好吧。 TOP 1&#xff1…

如何访问远程MySQL数据库?

远程访问MySQL数据库是在不同设备之间实现数据交互的一种方式。通过远程访问&#xff0c;用户可以轻松地操作远程MySQL数据库&#xff0c;从而实现数据的读写、修改和查询等操作。本文将介绍远程访问MySQL数据库的原理和实现方法&#xff0c;以及一种被广泛应用的解决方案【天联…

[入门到放弃]设计模式-笔记

模块化设计 20240448 模块不包含数据&#xff0c;通过实例的指针&#xff0c;实现对实例的操作&#xff1b;唯一包含的数据是用于管理这些模块的侵入式链表模块只负责更具定义的数据结构&#xff0c;执行对应的逻辑&#xff0c;实现不同实例的功能&#xff1b; 参考资料 使用…

TCP/IP协议—UDP

TCP/IP协议—UDP UDP协议UDP通信特点 UDP头部报文UDP检验 UDP协议 用户数据传输协议 (UDP&#xff0c;User Datagram Protocol) 是一种无连接的协议&#xff0c;提供了简单的数据传输服务&#xff0c;不保证数据的顺序以及完整性。应用层很多通信协议都基于UDP进行传输&#x…