单片机之蓝牙通信

目录

蓝牙介绍

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,工作方式为2TH1=0xFD; //重置TL1TL1=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;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业航拍VR全景视频展示仿如上门参观

360度VR全景视频因其广阔的视野和身临其境的体验&#xff0c;无论再房产楼盘的精致呈现&#xff0c;旅游景点的全景漫游&#xff0c;还是校园风光的生动展示&#xff0c;都成为企业商户的首选。 360度vr全景视频编辑软件是深圳VR公司华锐视点提供多种常见的三维仿真场景供选择&…

【Python细类】全局日志调试模式

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

goproxy 简单介绍 及一键安装脚本

goproxy 官网 https://goproxy.cn/ GoProxy 是一项用于 Go 模块的高性能代理服务&#xff0c;旨在为 Go 开发人员提供更快速、更可靠的模块下载体验。它提供以下主要功能&#xff1a; 全球分布式代理服务器: GoProxy 在全球多个地区部署了代理服务器&#xff0c;例如拉斯维加…

【电控笔记6】电流回路+延迟效应

问题提出 数字控制系统的delay: 5.4节有介绍T0=0.5TS 低通滤波器的时间常数? 可用示例程序 m2 2 1b 如下图画出开环系统的伯德图进行比较,如图 2-2-4 所示,由于延迟组件会侵蚀系统的相位,因此从图可以看出,加入延迟效应后,q轴电流回路的相位裕度(Phase Margin) 从…

CSS3 平面 2D 变换+CSS3 过渡

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 ✍一、CSS3 平面 2D 变换&#x1f48e;1 坐标轴&#x1f48e;2 transform 语法…

【Hadoop】下载安装及伪分布式集群搭建教程

目录 1.概述 2.环境准备 3.hadoop安装 3.1.下载安装配置 3.2.伪分布式集群 3.3.注意事项 4.Hadoop集群的组成 1.概述 hadoop有三种安装模式 单机模式&#xff0c;只在一台机器上运行&#xff0c;存储用的本地文件系统而不是HDFS。 伪分布式模式&#xff0c;存储采用HD…

HarmonyOS实战开发-录音机、如何实现音频录制和播放的功能

介绍 本示例使用audio相关接口实现音频录制和播放的功能&#xff0c;使用mediaLibrary实现音频文件的管理。 相关概念&#xff1a; AudioRecorder&#xff1a;音频录制的主要工作是捕获音频信号&#xff0c;完成音频编码并保存到文件中&#xff0c;帮助开发者轻松实现音频录…

3d里怎么让模型直接显示材质---模大狮模型网

在3D设计和渲染中&#xff0c;使模型直接显示材质是一个常见但也关键的需求。直接显示材质可以帮助设计师更直观地预览和编辑模型的外观&#xff0c;从而提高工作效率并确保最终效果符合预期。本文将介绍一些方法和技巧&#xff0c;帮助你在3D设计中实现模型直接显示材质的目标…

进口PFA容量瓶高纯透明聚四氟乙烯材质耐强酸碱PFA定容瓶

PFA容量瓶&#xff0c;也叫特氟龙容量瓶&#xff0c;是用于配制标准浓度溶液的实验室器皿&#xff0c;是有着细长颈、梨形肚的耐强腐蚀平底塑料瓶&#xff0c;颈上有标线&#xff0c;可直接配置标准溶液和准确稀释溶液以及制备样品溶液。 因其有着不易碎、材质纯净、化学稳定性…

Android广播之监听应用程序安装与卸载

&#x1f604;作者简介&#xff1a;小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c; 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想当开发的测试&#xff0c;不是一个好测…

221 基于matlab编制的直齿圆柱齿轮应力计算程序

基于matlab编制的直齿圆柱齿轮应力计算程序&#xff0c;输入设计参数&#xff1a;模数、齿顶高、齿宽、啮合齿数、转速、扭矩、安全系数、压力角、齿轮类型&#xff08;开式、闭式&#xff09;等&#xff0c;输出弯曲应力和许用应力&#xff0c;并对比是否满足要求。并把程序成…

Eclipse新建类的时候如何自动添加注释

Eclipse新建类的时候如何自动添加注释 主要有两种方法&#xff1a;①创建类文件时自动添加注释&#xff1b;②文件注释 方法一&#xff1a;类注释 windows -> preferencesJava -> Code Style -> Code TemplatesCode -> new Java filesedit 填入下面的数据 ${fi…

在vue3中实现pptx、word、excel预览

插件推荐 PPTXjs vue-office 代码 <script setup lang"ts" name"home"> import { computed, nextTick, ref, onMounted } from vue; //引入VueOfficeDocx组件 import VueOfficeDocx from vue-office/docx; //引入VueOfficeExcel组件 import VueOf…

解决CSS中鼠标移入到某个元素其子元素被遮挡的问题

我们在开发中经常遇到一种场景&#xff0c;就是给元素加提示信息&#xff0c;就是鼠标移入到盒子上面时&#xff0c;会出现提示信息这一功能&#xff0c;如果我们给盒子加了hover&#xff0c;当鼠标移入到盒子上时&#xff0c;让他往上移动5px&#xff0c;即transform: transla…

C/C++基础----数组和引入指针

数组 数组的定义 语法&#xff1a; 类型 变量名[数组大小] {数组内容1,数组内容2}; int array[5] {1,2,3,4,5};代码 int main(){// 定义数组&#xff0c;大小不写&#xff0c;数组内默认有多少元素大小就为多少int array_a[] {1, 2, 3, 4, 5, 6};// 定义数组长度为5&#x…

计算机基础知识-第10章-计算机网络概论

一、什么是计算机网络 计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统。 要注意不…

jenkins+sonar配置

安装插件 Sonar Scanner 用于扫描项目 配置sonar scanner jenkins集成sonar 1、sonar生成token 生成完保存好&#xff0c;刷新后无法查看 2、jenkins配置全局凭据 3、jenkins配置系统设置

2、ESP-WROOM-32开发板笔记

ESP32 是乐鑫开发的一系列低成本、低功耗的片上系统微控制器&#xff0c;具有 Wi-Fi 和蓝牙无线功能以及双核处理器。 目录 一、特点 二、硬件内存 三、支持外设 四、引脚定义 1、仅输入引脚 2、SPI闪存 3、电容式触摸 IO 4、ADC 5、DAC 6、RTC GPIO 7、PWM 8、I2C 9、SPI …

时间复杂度详解2——时间复杂度的计算

时间复杂度基本计算规则&#xff1a; 基本操作即只有常数项&#xff0c;认为其时间复杂度为O(1)顺序结构&#xff0c;时间复杂度按加法进行计算循环结构&#xff0c;时间复杂度按乘法进行计算分支结构&#xff0c;时间复杂度取最大值判断一个算法效率时&#xff0c;往往只需要…

第十二届蓝桥杯大赛软件赛省赛Java 大学 B 组题解

1、ASC public class Main {public static void main(String[] args) {System.out.println(