51单片机蓝牙模块(HC05)运行原理

article/2025/10/30 12:22:57

51单片机蓝牙模块(HC05)及其运行原理

HC05蓝牙模块正面
HC05蓝牙模块背面

目录

  • 51单片机蓝牙模块(HC05)及其运行原理
    • 一、测试蓝牙模块
    • 二、配置蓝牙模块
    • 三、烧写程序
    • 四、测试
    • 参考博文

一、测试蓝牙模块

  • 在所有工作进行之前首先看一看自己的蓝牙模块是否是正常的,这一步很重要。一块正常的蓝牙模块是所有后续工作的基础!
    • 首先把蓝牙模块链接到51单片机上在这里插入图片描述

    • 这时需要注意!!!我们需要将蓝牙模块的RXD和单片机上的P30(RXD)引脚连接,将蓝牙模块的TXD和单片机上的P31(TXD)引脚连接。因为下一步我们需要将单片机主板和电脑进行连接,电脑先通过USB模块转TTL模块连接到单片机,再通过单片机的P30和P31引脚连接到蓝牙模块。蓝牙模块需要将电脑传送的数据通过RXD接收到。(此时单片机只起到了导线的作用,并且在单片机内部实现了串口通信的交叉连接,所以RXD和RXD连接TXD和TXD连接)

    • 如果不通过单片机连接,按照下图中的连接方式也是可以的!直接借用主板的USB转TTL模块实现电脑和蓝牙模块的串口通信,进行后续的测试和配置!(注意此时就需要按照串口通信的规则进行交叉连接RXD和UTX连接,TXD和URX连接)
      在这里插入图片描述

    • 我们需要知道蓝牙模块有两种模式(配置模式,工作模式),此时我们需要进入蓝牙模块的配置模式进行检测蓝牙模块是否正常,顺便做一下个性化设置!进入配置模式的方法很简单,将主板通过USB线连接到电脑上(注意:此时主板电源要关闭)!按住蓝牙模块上的小按钮然后打开主板电源,直到蓝牙模块的指示灯两秒闪烁一次,现在就进入了蓝牙模块的配置模式!

    配置模式:用来设置主从机、波特率、密码、连接等一系列信息(使用AT指令);其中需要我们设置的是波特率,主从机以及密码。其具有断电保存的功能,所以我们一般只需要配置一次。
    工作模式:当设置完配置模式一系列参数后,我们便可以进入正常模式,将蓝牙模块和另一个拥有蓝牙模块的设备进行通信,从而传递数据

在这里插入图片描述

  • 接下来就需要打开串口调试工具进行测试和配置。
    1. 端口号选择你的USB串口(CH340)。一般情况下上面都会自动显示出USB的样式!
    2. 设置波特率为38400(配置模式下的波特率永远都是38400不会改变)
    3. 记得勾选加回车换行,然后点击打开串口!
    4. 发送AT
  • 返回OK则表明蓝牙模块是正常的,如果没反应就多检查几次看看哪里没做对!大多数时候是自己出了小错误导致的!

二、配置蓝牙模块

  • 接着上一步发送指令

AT+ROLE=0 (蓝牙模块设为从机,此时只可以被搜索)
AT+CMODE=1 (蓝牙模块可以和任意设备连接)
AT+UART=9600,0,0 (设置波特率9600)
AT+NAME=WARNING (设置蓝牙的名字为HC05,手机蓝牙搜索时就找这个名字)
AT+PSWD=123456 (设置密码,手机蓝牙串口APP连接蓝牙模块,需要输入密码)

三、烧写程序

  • 相信这一步不用我说太多,我只说一个思路!
  • 这个程序只需要把接收到的数据按照原路返回即可(即蓝牙接收到从电脑发送的数据,然后传输给单片机,单片机的处理过程就是原封不动通过蓝牙再传给电脑)大家可以参考下面的代码!当然大家也可以自己写一些有趣的程序!在此只是用作理解蓝牙模块的工作原理!
#include "reg52.h"typedef unsigned int u16;
typedef unsigned char u8;void uart_init(u8 baud)
{TMOD|=0x20; //设置计数器工作方式SCON=0x50;  //包括 SM0,SM1(控制工作方式),SM2(如果有多个接收端这个可以通过RB8位控制哪个接收端可以接收到信息),REN(允许接收位,默认设置成1即允许接收)TB8,RB8(用作工作方式2,3下的第九位数据),TI(发送中断标志位),RI(接收中断标志位)PCON=0x80;  //设置SMOD=1TH1=baud;   //设置计时器初值TL1=baud;ES=1;EA=1;TR1=1;
}void uart() interrupt 4
{u8 temp=0;temp=SBUF;RI=0;SBUF=temp;while(!TI);TI=0;
}void main()
{uart_init(0xFA); // 波特率设置成9600的初值就是0xfawhile(1){}
}

四、测试

现在我们就可以通过蓝牙模块来访问单片机了!

  • 首先将主板断电,然后把主板从电脑上拔下来找个充电器插头独立供电,此时我们需要注意我们需要将蓝牙模块的RXD引脚和TXD引脚进行互换!(此时从电脑的USB串口通信转变成了通过蓝牙模块的串口通信)我们需要记住的是串口通信是需要将RXD和TXD进行交叉连接的,无论是通过什么媒介,USB也好蓝牙也好都是串口通信
  • 打开单片机主板电源!打开电脑蓝牙进行搜索并输入密码连接!
  • 接下来就可以进行测试了
    • 打开串口调试工具在这里插入图片描述
    • 端口号选择蓝牙链接的串口(我这个是之前链接的不知道怎么名字就变了)
      注意:一般情况下端口会显示COM 5 蓝牙连接上的标准串行字样,如果显示的不对可以都试一试,但肯定不是COM4(即USB串口CH340)
    • 波特率是9600

此时你发送的信息就会被单片机原路返回显示在窗口上,我们的蓝牙模块探索之旅就此结束了!

参考博文

在此非常感谢冰心-学术trash博主这篇博文的帮助!

51单片机与HC-05蓝牙模块(手机蓝牙控制小灯之小白速成)


http://chatgpt.dhexx.cn/article/VlMo70tF.shtml

相关文章

HC-05的使用-详细

蓝牙转串口模块HC-05模块使用记录 最近在弄一个需要无线传输数据的项目,虽然以前也接触过HC-05这个模块,但是始终只是知道简单的使用,借这个机会更加深入的学习一下这个模块。 初识HC-05 BLK-MD-HC-05蓝牙模块是专为智能无线数据传输而打造…

STM32系列——手把手教你蓝牙模块HC05、HC06的使用,重在“用起来”(HAL库)

前言 不论是HC05还是HC06,我们用到的都是蓝牙模块的透传功能,只需要用到4个引脚:RXD、TXD、VCC(5V)、GND。 HC-05的使用 1、HC-05有6个引脚,但是我们只用到4个。 2、HC-05正面有一个按键。与HC-06的区别是&…

基于 OSGi的企业级开发框架实践——认识OSGi和SpringDM

一. OSGi基础 1. 什么是OSGi OSGi——Open Service Gateway Initiative,最初的目的是为各种嵌入式设备提供通用的软件运行平台。后来经过10年的发展和壮大,OSGi已经不只是在嵌入式设备中应用,而是被推广到各种其他的应用领域,比如…

Kotlin + Spring Boot: 下一代企业级开发

Kotlin Spring Boot: 下一代企业级开发 前端 React UXCore (使用 nowa)学习 Jietu20171210-022532.jpg Jietu20171210-022551.jpg image.png 工程源代码:https://github.com/KotlinSpringBoot/wekool

《Qt 企业级开发》

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 《Qt 企业级开发》 是亮哥专门打造的一个 Qt 终极篇 专栏,主要面向企业级一站式开发,包括:模块化开发、日志输出、打包发布、单元测试、自…

BladeX企业级开发平台商业版源码,BladeXAvue联合版

BladeX企业级开发平台 BladeX是一款精心设计的微服务架构,提供 SpringCloud 全套解决方案 开源中国首批完美集成 SpringCloud Alibaba 系列组件的微服务架构 基于稳定生产的商业项目升级优化而来,更加贴近企业级的需求 追求企业开发更加高效&#xff0c…

JAVA企业级开发技术

传统框架 SpringMVC(表现层)Struts2(表现层)Mybatis(数据层)Hibernate(数据层)SpringData Jpa(数据层) 开发中比较常见的组合: SSM : Spring-SpringMVC-MybaitsSSH :Spring-Struts2-hibernate 2017年热门开发框架 Springboot快捷开发,封装牛逼,简单入门 SpringCloud 通过Spr…

Spring Boot 企业级开发课后题答案

Spring Boot 企业级开发课后题答案 黑马程序员 加粗字体为答案 转发请注明出处【感谢】 第一章 1.1 填空题 Pivotal 团队在原有 spring 框架的基础上开发了全新的Spring Boot框架。Spring Boot框架在开发过程中大量使用 约定优先配置 的思想来摆脱框架中各种复杂的手动配置。…

SpringBoot企业级开发

根据书籍《SpringBoot企业级开发教程》梳理SpringBoot开发框架,代码在本人Mac运行通过,IDE是IntelliJ。 SpringBoot知识图谱: 链接:https://pan.baidu.com/s/1CXMCMBimTPk8kUYir4JETg 提取码:bnpb 部分截图&#…

企业级应用开发(SSM) Spring

目录 一:引言 1.1企业级系统: 1.2那么如何去应对企业级应用开发 1.3 Spring的绿草丛 二:Spring的绿草丛 2.1 Spring 介绍 2.2 Spring两大核心技术 a.控制反转(IoC(Inversion of Control) / 依赖注入(DI)&#xf…

2019泰迪杯C题案例分析-python大数据自动化数据挖掘

第七届“泰迪杯”数据挖掘挑战赛——C 题:运输车辆安全驾驶行为的分析 一、问题背景二、研究问题三、分析问题excel的批量处理时间、速度、方向角的处理经纬度的处理大数据处理的优化 一、问题背景 车联网是指借助装载在车辆上的电子标签通过无线射频等识别技术&am…

利用SPSS Modeler进行数据挖掘——探究不同程序语言的就业情况

欢迎加入程序员QQ交流群~~:859022876 程序员 本次SPSS Modeler项目实战,是我个人课余做的一个简单案例,因为本人也是互联网大家庭中的一员,因此最关心的必定是程序语言的未来走势和就业情况,于是…

数据挖掘实战—餐饮行业的数据挖掘之数据探索(EDA)

文章目录 引言一、前期准备1.目标定义与任务理解 二、数据采集与抽样三、数据探索1.数据质量分析1.1缺失值分析1.1.1缺失值可视化1.1.2描述性统计1.1.3统计缺失数与缺失率 1.2异常值分析1.2.1 3σ原则1.2.2箱型图分析 1.3一致性分析1.4重复数据处理 2.数据特征分析2.1分布分析2…

数据挖掘实战—餐饮行业的数据挖掘之数据预处理

文章目录 引言一、数据清洗1.缺失值处理1.1 拉格朗日插值法1.2牛顿差值法 2.异常值的处理 二、数据集成1.实体识别2.冗余属性识别3.数据变换3.1 简单函数变换3.2 规范化3.2.1 最小-最大规范化3.2.2 零-均值规范化(标准化)3.2.3 小数定标规范化 3.3 连续属…

数据挖掘案例:建立客户流失模型

随着市场竞争的加剧,中国电信面临的压力越来越大,客户流失也日益增大。从统计数据看,今年固话小灵通的销户数已经超过了开户数。面对如此严峻的市场形式,当务之急就是要尽全力减少客户的流失。因此,利用数据挖掘方法&a…

数据挖掘实战案例——客户细分

我们首先来看看原始数据 具体代码与原始数据可以在我的GitHub中git clone一下学习 代码与数据github地址 共26663条数据 此次分析是想对根据客户的购买情况对客户进行细分 分析用户的购买消费行为 首先读取csv import pandas as pd #import numpy as np trad_flow pd.read_…

浅谈数据挖掘

一、数据挖掘起源 人们迫切希望能对海量数据进行深入分析,发现并提取隐藏在其中的信息,以更好地利用这些数据。但仅以数据库系统的录入、查询、统计等功能,无法发现数据中存在的关系和规则,无法根据现有的数据预测未来的发展趋势…

Python数据分析挖掘案例:Python爬虫助力疫情数据追踪

通过学习Python数据分析挖掘案例,可以掌握通过Python爬虫获取的数据进行处理以及可视化分析的主要方法和技能,并为后续相关课程学习及将来从事数据分析工作奠定基础。 新冠病毒疫情在武汉突然爆发,确诊病例、疑似病例、死亡病例等数据牵动着每…

【数据挖掘案例】财政收入影响因素分析及预测模型

案例来源自《Python 数据分析与挖掘实战》第 13 章:财政收入影响因素分析及预测模型 案例目的:预测财政收入 1 数据的基本描述性分析 数据 字段含义 社会从业人数(x1 )、 在岗职工工资总额(x2)、社会消费品零售总额(x3)、城镇…

python数据挖掘案例系列教程——python实现搜索引擎

全栈工程师开发手册 (作者:栾鹏) python数据挖掘系列教程 今天我们使用python实现一个网站搜索引擎。主要包含两个部分。网站数据库的生成、搜索引擎。其中搜索引擎部分我们使用单词频度算法、单词距离算法、外部回值算法、链接文本算法、pag…