蓝牙模块(BT04/HC05)

目录

一、介绍

二、模块原理

1.原理图与外形尺寸

2.引脚描述

3.蓝牙模块基础AT指令介绍

三、程序设计

usart3.h文件

usart3.c文件

四、实验效果 

五、资料获取

项目分享


一、介绍

        BT04A是一款蓝牙低功耗(Bluetooth Low Energy, BLE)模块,它主要用于物联网(IoT)设备之间的无线通信,特别是那些需要长电池寿命的应用场景。此模块支持蓝牙4.0标准,能够提供高速的数据传输速率以及低功耗特性,适合于穿戴设备、智能家居控制、健康监测等应用。

以下是BT04A蓝牙模块的参数:

型号

BT04-A

工作电压

3.3~5V

蓝牙模式

从模式

最大距离

10M

配对码

1234

串口参数

9600810

工作频段

2.4 GHz ISM频段

哔哩哔哩视频链接:

蓝牙模块(BT04 HC05)

(资料分享见文末) 

二、模块原理

1.原理图与外形尺寸

2.引脚描述

引脚名称

描述

RXD

信息接收端

TXD

信息发送端

GND

电源负极

VCC

电源正极

用于指示蓝牙模块所处状态,LED灯闪烁方式与蓝牙模块状态对应见表

3.蓝牙模块基础AT指令介绍

注意:发AT指令时必须回车换行,只能在模块未连接状态下才能生效。

三、程序设计

使用STM32F103C8T6通过串口调试助手(APP)控制LED亮灭

BT04_TX

PB11

BT04_RX

PB10

LED

PA0

串口

串口1

main.c文件

#include "stm32f10x.h"
#include "led.h"
#include "usart.h"
#include "delay.h"
#include "oled.h"
#include "usart3.h"/*****************辰哥单片机设计******************STM32* 项目			:	蓝牙模块通信实验                     * 版本			: V1.0* 日期			: 2024.10.2* MCU			:	STM32F103C8T6* 接口			:	参看usart3.h							* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/u8 dakai;
u8 Flag_dakai;int main(void)
{ SystemInit();//配置系统时钟为72M	delay_init(72);LED_Init();LED_On();USART1_Config();USART3_Config();printf("Start \n");delay_ms(1000);while (1){if(dakai==1&&Flag_dakai==0){LED_On();Flag_dakai=1;printf("1 \n");}if(dakai==0&&Flag_dakai==1){LED_Off();Flag_dakai=0;printf("0 \n");}}
}

usart3.h文件

#ifndef __USART3_H
#define __USART3_H#include "stm32f10x.h"                  // Device header
#include "oled.h"
#include "usart.h"/*****************辰哥单片机设计******************STM32* 项目			:	蓝牙模块通信实验                     * 版本			: V1.0* 日期			: 2024.10.2* MCU			:	STM32F103C8T6* 接口			:	参串口3						* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************/void USART3_Config(void); //串口 3 初始化#endif

usart3.c文件

#include "usart3.h"	/*****************辰哥单片机设计******************STM32* 项目			:	蓝牙模块通信实验                     * 版本			: V1.0* 日期			: 2024.10.2* MCU			:	STM32F103C8T6* 接口			:	串口3						* BILIBILI	:	辰哥单片机设计* CSDN			:	辰哥单片机设计* 作者			:	辰哥 **********************BEGIN***********************///串口1中断服务程序//初始化 IO 串口 3//pclk1:PCLK1 时钟频率(Mhz)//bound:波特率  
void USART3_Config()
{ NVIC_InitTypeDef NVIC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;USART_InitTypeDef USART_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//GPIOB 时钟RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3,ENABLE); //串口 3 时钟使 USART_DeInit(USART3); //复位串口 3//USART3_TX PB10GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10; //PB10GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化 PB10//USART3_RX PB11GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING; //浮空输入GPIO_Init(GPIOB, &GPIO_InitStructure); //初始化 PB11USART_InitStructure.USART_BaudRate= 9600; //波特率设USART_InitStructure.USART_WordLength=USART_WordLength_8b; //8 位数据格USART_InitStructure.USART_StopBits = USART_StopBits_1; //一个停止USART_InitStructure.USART_Parity = USART_Parity_No; //无奇偶校验USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;//无硬件数据流USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//收发模式USART_Init(USART3, &USART_InitStructure); //初始化串口 3USART_Cmd(USART3, ENABLE);//使能串口USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);//使能接收中断 //设置中断优先级NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0 ;//抢占优先级 2NVIC_InitStructure.NVIC_IRQChannelSubPriority =0; //子优先级 3NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道使能NVIC_Init(&NVIC_InitStructure); //根据指定的参数初始化 NVIC 寄存器
}
extern u8 Flag_dakai,dakai;void USART3_IRQHandler(void)
{ u8 Res; if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)//接收到数据{ Res =USART_ReceiveData(USART3);if(Res=='1'){dakai=1;Res='5';}			if(Res=='2'){dakai=0;Res='5';}						} 
} 

四、实验效果 

五、资料获取

项目分享

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

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

相关文章

继电保护之电压重动、电压并列和电压切换

实践:以某开关室10kV母联隔离柜为例: ZYQ-824为PT并列装置,装置内包含一系列继电器,用于PT重动及并列。按照装置编号原则,交流电压切换箱一般命名为7n。 ​下图为装置内继电器线圈部分接线: 下图为装置内…

Windows下的python安装教程_2024年10月最新最详细的安装指南

文章目录 前言一、下载python二、安装python三、验证环境四、配置环境变量(可选)总结 前言 Python 是一种广泛使用的高级编程语言,以其简洁易读的语法和强大的库支持而著称。无论你是初学者还是经验丰富的开发者,安装 Python 都是…

游戏盾是如何解决游戏行业攻击问题

随着游戏行业的迅猛发展,其高额的利润和激烈的市场竞争吸引了众多企业和创业者的目光。然而,这一行业也面临着前所未有的业务和安全挑战,尤其是DDoS(分布式拒绝服务)攻击,已经成为游戏行业的一大威胁。今天…

详解 SPI 机制

SPI(Service Provider Interface) 是 JDK 内置的一种服务提供发现机制:可以用来启用框架扩展和替换组件,主要用于框架中开发。例如:Dubbo、Spring、Common-Logging,JDBC 等都是采用 SPI 机制,针对同一接口采用不同的实…

基于SpringBoot博物馆游客预约系统【附源码】

基于SpringBoot博物馆游客预约系统 效果如下: 主页面 注册界面 展品信息界面 论坛交流界面 后台登陆界面 后台主界面 参观预约界面 留言板界面 研究背景 随着现代社会的快速发展和人们生活水平的提高,文化生活需求也在日益增加。博物馆作为传承文化、…

k8s 中的 PV 的动态供给

目录 1 存储类 Storageclass 介绍 1.1 StorageClass 说明 1.2 StorageClass 的属性 2 存储分配器 NFS Client Provisioner 2.1 官网存储分配器的部署介绍 2.2 实现动态创建 PV 模版清单文件的介绍 2.2.1 Storageclass 存储类的模版 2.2.2 创建 Provisioner 制备器的模版 2.2.3…

【Linux】文件IO系统[ 库函数 ]封装了[ 系统调用 ] +【区分文件结构体FILE和file与files_srtuct表】(读写接口盘点与介绍)

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

世邦通信股份有限公司IP网络对讲广播系统RCE

漏洞描述 SPON世邦IP网络广播系统采用的IPAudio™技术, 将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输的双向音频扩声系统。传统广播系统存在的音质不佳,传输距离有限,缺乏互动等问题。该系统设备使用简便&#xff0c…

AAA Mysql与redis的主从复制原理

一 :Mysql主从复制 重要的两个日志文件:bin log 和 relay log bin log:二进制日志(binnary log)以事件形式记录了对MySQL数据库执行更改的所有操作。 relay log:用来保存从节点I/O线程接受的bin log日志…

界面控件DevExpress中文教程 - 如何拓展具有AI功能的文本编辑器(一)

本文重点介绍了DevExpress在近年来最热门领域——人工智能(AI)和自然语言处理(NLP)的改进! NLP是人工智能的一个分支,它允许计算机与人类语言进行交互,这包括以有意义/有用的方式理解、解释、生成和回应文本(和语音)的能力。基于NLP的功能允…

仿RabbitMQ实现消息队列客户端

文章目录 客⼾端模块实现订阅者模块信道管理模块异步⼯作线程实现连接管理模块生产者客户端消费者客户端 客⼾端模块实现 在RabbitMQ中,提供服务的是信道,因此在客⼾端的实现中,弱化了Client客⼾端的概念,也就是说在RabbitMQ中并…

认知战认知作战:激发认知战战术分享热情的秘诀

认知战认知作战:激发认知战战术分享热情的秘诀 认知战认知作战:激发认知战战术分享热情的秘诀 关键词:认知战, 认知作战, 创造独特体验, 融入社交元素, 情感共鸣策略, 分享激励机制, 战略形象塑造, 个性化内容推荐,认知作战,新质生产力,人类…

E. Tree Pruning Codeforces Round 975 (Div. 2)

原题 E. Tree Pruning 解析 本题题意很简单, 思路也很好想到, 假设我们保留第 x 层的树叶, 那么对于深度大于 x 的所有节点都要被剪掉, 而深度小于 x 的节点, 如果没有子节点深度大于等于 x, 那么也要被删掉 在做这道题的时候, 有关于如何找到一个节点它的子节点能通到哪里,…

用Arduino单片机制作一个简单的音乐播放器

Arduino单片机上有多个数字IO针脚,可以输出数字信号,用于驱动发声器件,从而让它发出想要的声音。蜂鸣器是一种常见的发声器件,通电后可以发出声音。因此,单片机可以通过数字输出控制蜂鸣器发出指定的声音。另外&#x…

马丁代尔药物大典数据库

马丁代尔药物大典是一本由Pharmaceutical Press出版的参考书,拥有全球使用的近 6000 种药物和药品,包括超过 125,000 种专有制剂的详细信息。其中还包括近 700 篇疾病治疗评论。 它于 1883 年首次出版,马丁代尔包含全球临床用药信息&#xff…

【qt】QQ仿真项目2

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 一览全局: QQ仿真项目 一.主窗口的创建二.主窗口的ui设计三.初始化状态,等级,app…

<Rust>iced库(0.13.1)学习之部件(三十一):picklist部件的使用及可变style设置

前言 本专栏是学习Rust的GUI库iced的合集,将介绍iced涉及的各个小部件分别介绍,最后会汇总为一个总的程序。 iced是RustGUI中比较强大的一个,目前处于发展中(即版本可能会改变),本专栏基于版本0.12.1. 注:新版本已更新为0.13 概述 这是本专栏的第三十一篇,主要说明下…

俗人,精气神,歌曲《错的人》

精气神,在人体中,精指构成人体生命活动的各层次的有形元素,常呈固体或液体状态。 哲学前提:世界上的一切,从微观上讲,都是由精微物质构成的,比如基本粒子。 关于有形与无形、与主观关注点相关…

DHCP安装

步骤 1:安装DHCP服务器 在系统上安装DHCP服务。以下是安装命令: # 安装DHCP软件包 yum install dhcp步骤 2:配置DHCP服务器 安装完成后,需要配置DHCP服务器来绑定MAC地址和IP地址。 # 备份原始的DHCP配置文件 cp /etc/dhcp/dh…