当前位置: 首页 > news >正文

模块使用教程(基于STM32)——蓝牙模块

参考教程:https://www.bilibili.com/video/BV1aDndzEEk1/?spm_id_from=333.1387.favlist.content.click

一、蓝牙模块工作原理

1、蓝牙模块简介

(1)蓝牙模块可以将有线串口数据流转换为无线蓝牙数据流,实现无线串口功能,在数据传输过程中,数据不发生任何形式的改变,原封不动地从发送者传到接收者。

(2)几个版本的蓝牙:

蓝牙类别

标志

特性

经典蓝牙

SPP,蓝牙3.0及以下

功耗高,速率较快,先配对后连接

低功耗蓝牙

BLE,蓝牙4.0及以上

功耗低,速率较慢,快速连接

增加组网、广播、定位等新功能

双模蓝牙

SPP + BLE

同时集成经典蓝牙和低功耗蓝牙,兼容性更强

(3)根据主从应用分类:

主从类别

特性

单从机

仅能被动等待主设备连接,无法主动发起连接请求

主从一体

可切换角色为主设备或从设备,作为主设备时,可主动发起连接请求

2、硬件连接方式

(1)蓝牙模块串口端与USB转串口模块电气连接(USB与电脑连接),蓝牙端与手机进行无线连接。

(2)蓝牙模块串口端与单片机串口电气连接,蓝牙端与手机进行无线连接。

(3)蓝牙模块串口端与单片机串口电气连接,蓝牙端与另一个蓝牙模块的蓝牙端进行无线连接。

3、模块引脚定义

(1)STATE是连接状态指示引脚,蓝牙未连接时输出高/低电平(具体需要参考数据手册),已连接则反之。

(2)通过控制KEY可控制蓝牙模块进入AT模式,输入高/低电平(具体需要参考数据手册),蓝牙模块进入AT模式,该引脚往往连接按键模块。

(3)GND和VCC分别为接地引脚和电源供电引脚,电源电压值需要参考数据手册。

(4)RXD和TXD为串口通信引脚。

4、蓝牙模块配置(AT模式)

(1)AT模式下可配置蓝牙模块的参数,如果模块的KEY引脚连接按键,蓝牙未连接或者连接后按住按键不放(不同模块可能不一样,需参考模块对应的数据手册),可以使模块进入AT模式,此时通过串口发送AT指令,可对蓝牙模块进行配置,蓝牙模块也会返回相应的信息。

(2)AT指令集(以HC-04为例,非完全,仅列举一部分,不同蓝牙模块的AT指令和进入AT模式的方法都可能不同,需参考模块对应的数据手册):

AT指令+也是指令的一部分

功能

AT

测试通讯

AT+BAUD=xx(“xx”为需要设置的波特率,如仅查询则为“?”)

查询和设置串口波特率

AT+DEFAULT 

参数恢复默认值

AT+ROLE=x(“x”为S即设置从机(SPP&BLE双模共存),为M即设置SPP主机(单模)为BM即设置BLE主机(单模),如仅查询则为“?”

查询和设置角色(主设备/从设备)

AT+NAME=xx(“xx”为需要设置的蓝牙名称,如仅查询则为“?”)

查询和设置经典蓝牙名称

AT+PIN=xx(“xx”为需要设置的密码,如仅查询则为“?”)

查询和设置经典蓝牙配对密码

AT+BNAME=xx(“xx”为需要设置的BLE蓝牙名称,如仅查询则为“?”)

查询和设置BLE蓝牙名称

5、手机端软件

        蓝牙模块如果与手机端进行无线连接,那么手机端需要有一个软件进行对接,可以获取其他开发者开发的软件,也可以根据实际需求开发一个专门的软件

二、蓝牙模块应用

1、准备工作

(1)按下图所示接好电路,其中USB转串口模块替换为蓝牙模块即可,本实验以HC-04为例进行。

(2)拷贝一份STM32教程中“串口收发文本数据包”的工程文件夹,并更名为“无线串口收发文本数据包”。

2、程序调试

(1)编译程序,将程序下载到开发板中,根据主函数的注释进行调试,不同的是本实验向单片机发送数据不是通过PC端的串口助手,而是手机端的对接软件。

(2)不同软件、不同交互方式可实现的功能不同,读者可自行尝试设计其它交互方式,然后进行调试。

http://www.dtcms.com/a/473433.html

相关文章:

  • BaseLine与BackBone
  • 多视图几何--密集匹配--视差平面推导
  • 官网和商城结合的网站网站推广合同模板
  • 微软新模型UserLM:如何为AI助手打造一个“真实世界”模拟器
  • Linux中页面分配alloc_pages相关函数
  • Qt---布局管理器
  • 基于单片机的图书馆智能座位管理平台
  • 中国机械工业建设集团有限公司网站高端网站建设论坛
  • Envoy Gateway + ext_authz 做“入口统一鉴权”,ABP 只做资源执行
  • vscode免密码认证ssh连接virtual box虚拟机
  • 3.6 JSON Mode与JSON Schema
  • React Native::关于react的匿名函数
  • 基于JETSON ORIN+FPGA+GMSL AI相机的工业双目视觉感知方案
  • 常规的鱼眼镜头有哪些类型?能做什么?
  • 虚实之间:AR/VR开发中的性能优化艺术
  • 新手要如何让网站被收录公司查询信息查询
  • PostgreSQL 的 hstore、arrays 数据类型
  • Java集合体系 —— Set篇
  • 硅基计划5.0 MySQL 贰 SQL约束三大范式
  • 设计模式——工厂模式
  • 变色龙哈希与隐私保护
  • 栈和队列:“单端吞吐”VS”双端通行“(第十讲)
  • ros2系统在ubuntu18.04环境下的环境搭建
  • 个人网站展示dw网站制作
  • 鸿蒙NEXT系列之精析NDK UI API(节点增删和属性设置)
  • 10个免费货源网站郑州网络科技公司有哪些
  • Spring 源码学习(十三)—— RequestMappingHandlerAdapter
  • 虚幻引擎虚拟制片入门教程 之 3D渲染基础知识:模型、材质、贴图、UV等
  • excel导出使用arthas动态追踪方法调用耗时后性能优化的过程
  • 【数据结构】强化训练:从基础到入门到进阶(2)