HC-05蓝牙模块,主从一体机原理总结
HC-05蓝牙模块,主从一体机原理总结
原理就是:手机通过蓝牙传输到HC-05上,再通过串口通信和STM32通信;而之前一般都是电脑上通过USB线转串口的方式,通过串口和STM32通信。本质上没有区别的。
这个时候就应该更加深刻地体会到了本文开篇的一句话:说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。蓝牙的相关一切都被封装起来了,都不需要接触到。
蓝牙模块的调试
准备工作
USB转TTL模块与HC-05蓝牙模块的接线:
两模块共地,两模块共VCC(VCC取5V);蓝牙模块的RX接转换模块的TX,蓝牙模块的TX接转换模块的RX。如下图所示:
这个时候就要将转换模块连接到电脑上,然后利用串口调试助手进行蓝牙模块的调试。
附可能会用到的驱动:链接:https://pan.baidu.com/s/1bpYLfCr 密码:yabv
蓝牙模块的调试
HC-05蓝牙串口通讯模块具有两种工作模式:命令响应工作模式(AT)和自动连接工作模式。在自动连接工作模式下模块又可分为主(Master)、从(Slave)和回环(Loopback)三种工作角色。
- 当模块处于自动连接工作模式时,将自动根据事先设定的方式连接的数据传输;
- 当模块处于命令响应工作模式时能执行AT命令,用户可向模块发送各种AT 指令,为模块设定控制参数或发布控制命令。
怎么进入命令响应工作模式?
进入命令响应工作模式有两种方法:
- 模块上电,未配对情况下就是AT模式,波特率为模块本身的波特率,默认:9600,发送一次AT指令时需要置高一次PIO11;
- PIO11 置高电平后,再给模块上电,此时模块进入AT 模式,波特率固定为:38400,可以直接发送AT指令。
什么叫做置高一次PIO11?
在蓝牙模块中有一个小按键,按一下就置高一次PIO11。也就是说,第一种方法需要每发送一次AT指令按一次;而第二种方式是长按的过程中上电,之后就无需再管了,直接发送AT命令即可。
需要注意一下,两种进入命令响应工作模式的方式使用的波特率是不一样的,建议使用第二种方式。
怎么区分进了命令响应工作模式呢?
在蓝牙模块上有灯,当灯快闪的时候,就是自动连接工作模式;当灯慢闪的时候,就是命令响应工作模式。
AT命令
进入到命令响应工作模式之后,就可以使用串口调试助手进行蓝牙调试了。
首先有一点,AT指令不区分大小写,均以回车、换行结尾。下面介绍常用的AT指令:
手机与蓝牙模块之间的传输(快速测试)
直接将蓝牙模块与转换模块连接,再讲其连接到电脑上,蓝牙模块直接进入自动连接工作模式。
手机蓝牙控制STM32单片机
之前的两个例子都是相比较而言比较简单的,这个例子将会涉及到程序的内容了。
实现功能:手机通过蓝牙,向STM32单片机发送消息,STM32接收到消息之后原封不动的返回给手机。当然如果掌握了这个例子,也可以修改成,手机发送特定的消息,然后,STM32单片机做出相对应的动作。比如:点亮LED等、发动电机等等。
连接说明
使用USART1进行试验,也就是说STM32选取PA9、PA10来和HC-05进行连接。同时手机通过蓝牙来和HC-05进行连接。
原理就是:手机通过蓝牙传输到HC-05上,再通过串口通信和STM32通信;而之前一般都是电脑上通过USB线转串口的方式,通过串口和STM32通信。本质上没有区别的。
这个时候就应该更加深刻地体会到了本文开篇的一句话:说白了,只是个蓝牙转串口的设备,你只要知道串口怎么编程使用,就可以了,实现了所谓的透明传输。蓝牙的相关一切都被封装起来了,都不需要接触到。
STM32控制程序
1 #include "stm32f10x.h"2 3 4 void My_USART1_Init(void)5 6 {7 8 GPIO_InitTypeDef GPIO_InitStrue;9 10 USART_InitTypeDef USART_InitStrue;11 12 NVIC_InitTypeDef NVIC_InitStrue;13 14 15 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//GPIO端口使能16 17 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);//串口端口使能18 19 20 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_AF_PP;21 22 GPIO_InitStrue.GPIO_Pin=GPIO_Pin_9;23 24 GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;25 26 GPIO_Init(GPIOA,&GPIO_InitStrue);27 28 29 GPIO_InitStrue.GPIO_Mode=GPIO_Mode_IN_FLOATING;30 31 GPIO_InitStrue.GPIO_Pin=GPIO_Pin_10;32 33 GPIO_InitStrue.GPIO_Speed=GPIO_Speed_10MHz;34 35 GPIO_Init(GPIOA,&GPIO_InitStrue);36 37 38 USART_InitStrue.USART_BaudRate=115200;39 40 USART_InitStrue.USART_HardwareFlowControl=USART_HardwareFlowControl_None;41 42 USART_InitStrue.USART_Mode=USART_Mode_Tx|USART_Mode_Rx;43 44 USART_InitStrue.USART_Parity=USART_Parity_No;45 46 USART_InitStrue.USART_StopBits=USART_StopBits_1;47 48 USART_InitStrue.USART_WordLength=USART_WordLength_8b;49 50 51 USART_Init(USART1,&USART_InitStrue);52 53 54 USART_Cmd(USART1,ENABLE);//使能串口155 56 57 USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//开启接收中断58 59 60 NVIC_InitStrue.NVIC_IRQChannel=USART1_IRQn;61 62 NVIC_InitStrue.NVIC_IRQChannelCmd=ENABLE;63 64 NVIC_InitStrue.NVIC_IRQChannelPreemptionPriority=1;65 66 NVIC_InitStrue.NVIC_IRQChannelSubPriority=1;67 68 NVIC_Init(&NVIC_InitStrue);69 70 71 }72 73 74 void USART1_IRQHandler(void)75 76 {77 78 u8 res;79 80 if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)81 82 {83 84 res= USART_ReceiveData(USART1);85 86 USART_SendData(USART1,res);87 88 }89 90 }91 92 93 int main(void)94 95 {96 97 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);98 99 My_USART1_Init();
100
101 while(1);
102
103
104 }
这段程序和【STM32】串口相关配置寄存器、库函数(UART一般步骤)中的程序一模一样,几乎没有什么改动。
区别就是,在UART实验中,USART1是和USB转串口模块连接在一起的,然后与电脑上的串口调试助手进行通信;现在改成USART1是和蓝牙模块连接在一起的,然后和手机上的蓝牙串口调试助手进行通信。
HC-05蓝牙模块,主从一体机原理总结相关推荐
- C51编程23-应用篇(HC 06蓝牙模块)
现在的手机,平板,笔记本电脑都会自带蓝牙.本文将会介绍51单片机使用HC 06 蓝牙模块实现手机与笔记本电脑的通讯. HC 06 模块 购买HC 06模块后需要检测蓝牙模块是否是好的,使用串口线与 ...
- 低功耗蓝牙模块的工作原理是怎样的
蓝牙模块分为经典蓝牙和低功耗蓝牙,那么在如此低功耗的情况下,是如何做到稳定工作的呢,低功耗蓝牙模块有四种工作模式:分别是主设备模式.从设备模式.广播模式.Mesh组网模式. 1. 主设备模式 工作在主 ...
- HC-05蓝牙模块主从配对设置步骤记录
1.主从配置串口调试图片 图1 HC-05配对主机相关命令 图2 HC-05配对从机相关命令 2.主机设置步骤说明 准备两个USB转TTL的串口调试器,连接蓝牙和串口调试器,按住蓝牙模块 ...
- HC-05蓝牙模块主从机AT指令
在本Arduino教程中,我们将学习如何配置和配对两个HC-05蓝牙模块作为主设备和从设备.您可以观看以下视频或阅读下面的书面教程. 如何配置和配对两个HC-05蓝牙模块作为主机和从机AT指令 概述 ...
- 51单片机蓝牙模块(HC05)运行原理
51单片机蓝牙模块(HC05)及其运行原理 目录 51单片机蓝牙模块(HC05)及其运行原理 一.测试蓝牙模块 二.配置蓝牙模块 三.烧写程序 四.测试 参考博文 一.测试蓝牙模块 在所有工作进行之前 ...
- 蓝牙模块选型及基础知识介绍
目录 前言 一.蓝牙基础知识 1.蓝牙发展 2.苹果MFI认证 3.蓝牙协议 4.蓝牙与单片机通信方式 5.蓝牙单模 6.蓝牙双模 7.iBeacon 二.蓝牙模块选型 1.HC蓝牙模块 2.首选HC ...
- HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程
⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生. ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的stm32与st ...
- 连接 蓝牙HC - 05 模块 读写操作
连接 蓝牙HC - 05 模块 进行读写操作 1. 开启蓝牙进行连接 //藍牙private BluetoothAdapter bluetoothAdapter;private Set<Blue ...
- 避坑:关于两个HC-05主从一体蓝牙模块互连,连不上问题
注意事项: 一.首先,一定要买6脚的HC-05主从机一体蓝牙模块,因为要实现两个蓝牙互连,所以一定得一个做主机,一个做从机. 二.接下来就是固定配置步骤,基本跟网上其他博客 ...
最新文章
- 阿里云提示WordPress“/wp-includes/http.php输入IP验证不当”的解决办法
- Computer:MediaPreview的简介、安装、使用方法之详细攻略
- SQL Server备份账号和密码
- Spark编译报错问题日志记录
- 关于数据库更新插入语句
- 程序名称:ROS强开首页(类似电信ADSL强开指定首页)
- Bootstrap基本使用
- AD09由英文改中文菜单步骤
- linux环境Git客户端下载安装
- 《筱静观察》2019开机仪式暨战略合作签约仪式在北京创新社成功举办
- 笔记本计算机的功率一般多少,笔记本电脑功率是多少?
- 关于软件产品化的几点思考【转】
- 2022最全Hbuilder打包成苹果IOS-App的详解
- mac 配置mysql
- 张拉拉再获融资,怎么做出一碗资本爱吃的兰州拉面?
- MySQL的TIMESTAMP数据类型
- 计算机专业、物联网工程大一寒假规划必备篇
- 说说PSTN、ISDN、 ADSL三种互联网接入方式的区别。
- css 风琴,玩一下纯 CSS 折腾的一个叫什么手拉风琴的图片展示效果
- Dubbo线程池满导致宕机的案例分析解决