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蓝牙模块,主从一体机原理总结相关推荐

  1. C51编程23-应用篇(HC 06蓝牙模块)

    现在的手机,平板,笔记本电脑都会自带蓝牙.本文将会介绍51单片机使用HC 06 蓝牙模块实现手机与笔记本电脑的通讯.   HC 06 模块 购买HC 06模块后需要检测蓝牙模块是否是好的,使用串口线与 ...

  2. 低功耗蓝牙模块的工作原理是怎样的

    蓝牙模块分为经典蓝牙和低功耗蓝牙,那么在如此低功耗的情况下,是如何做到稳定工作的呢,低功耗蓝牙模块有四种工作模式:分别是主设备模式.从设备模式.广播模式.Mesh组网模式. 1. 主设备模式 工作在主 ...

  3. HC-05蓝牙模块主从配对设置步骤记录

    1.主从配置串口调试图片 图1 HC-05配对主机相关命令 图2 HC-05配对从机相关命令 2.主机设置步骤说明        准备两个USB转TTL的串口调试器,连接蓝牙和串口调试器,按住蓝牙模块 ...

  4. HC-05蓝牙模块主从机AT指令

    在本Arduino教程中,我们将学习如何配置和配对两个HC-05蓝牙模块作为主设备和从设备.您可以观看以下视频或阅读下面的书面教程. 如何配置和配对两个HC-05蓝牙模块作为主机和从机AT指令 概述 ...

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

    51单片机蓝牙模块(HC05)及其运行原理 目录 51单片机蓝牙模块(HC05)及其运行原理 一.测试蓝牙模块 二.配置蓝牙模块 三.烧写程序 四.测试 参考博文 一.测试蓝牙模块 在所有工作进行之前 ...

  6. 蓝牙模块选型及基础知识介绍

    目录 前言 一.蓝牙基础知识 1.蓝牙发展 2.苹果MFI认证 3.蓝牙协议 4.蓝牙与单片机通信方式 5.蓝牙单模 6.蓝牙双模 7.iBeacon 二.蓝牙模块选型 1.HC蓝牙模块 2.首选HC ...

  7. HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

    ⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生. ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的stm32与st ...

  8. 连接 蓝牙HC - 05 模块 读写操作

    连接 蓝牙HC - 05 模块 进行读写操作 1. 开启蓝牙进行连接 //藍牙private BluetoothAdapter bluetoothAdapter;private Set<Blue ...

  9. 避坑:关于两个HC-05主从一体蓝牙模块互连,连不上问题

    注意事项:        一.首先,一定要买6脚的HC-05主从机一体蓝牙模块,因为要实现两个蓝牙互连,所以一定得一个做主机,一个做从机.        二.接下来就是固定配置步骤,基本跟网上其他博客 ...

最新文章

  1. 阿里云提示WordPress“/wp-includes/http.php输入IP验证不当”的解决办法
  2. Computer:MediaPreview的简介、安装、使用方法之详细攻略
  3. SQL Server备份账号和密码
  4. Spark编译报错问题日志记录
  5. 关于数据库更新插入语句
  6. 程序名称:ROS强开首页(类似电信ADSL强开指定首页)
  7. Bootstrap基本使用
  8. AD09由英文改中文菜单步骤
  9. linux环境Git客户端下载安装
  10. 《筱静观察》2019开机仪式暨战略合作签约仪式在北京创新社成功举办
  11. 笔记本计算机的功率一般多少,笔记本电脑功率是多少?
  12. 关于软件产品化的几点思考【转】
  13. 2022最全Hbuilder打包成苹果IOS-App的详解
  14. mac 配置mysql
  15. 张拉拉再获融资,怎么做出一碗资本爱吃的兰州拉面?
  16. MySQL的TIMESTAMP数据类型
  17. 计算机专业、物联网工程大一寒假规划必备篇
  18. 说说PSTN、ISDN、 ADSL三种互联网接入方式的区别。
  19. css 风琴,玩一下纯 CSS 折腾的一个叫什么手拉风琴的图片展示效果
  20. Dubbo线程池满导致宕机的案例分析解决

热门文章

  1. centOS压缩和解压命令之bz2
  2. 编写一个歌词随音乐播放滚动的播放器
  3. Spring boot 实现 WebSocket服务端
  4. 【有限元分析】ANSYS 接触设置介绍
  5. 实验三 图像复原(源代码一站式复制粘贴)
  6. 寻找黑道高手一起黑网站玩
  7. Python数据可视化:高维数据图表可视化(基础篇—8)
  8. 年度数据分析报告,如何写出“年”味
  9. 兴业数金Java开发校招总结(笔试+面试)
  10. Scratch编程入门-画图模块5【绘制长方形】