HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

这篇具有很好参考价值的文章主要介绍了HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HC-05是一款主从一体化的蓝牙模块,因此其使用起来比较方便,只需要进行简单的配置即可。

本文就手把手的介绍小白入手模块后如何使用

对于模块使用:1、蓝牙配置→2、手机与蓝牙的传输→3、手机通过蓝牙模块控制单片机→4、一对蓝牙之间主—从传输数据,这是一个循循渐进的过程。

一、蓝牙的配置

①做好准备工作:接线(需要一个CH340 USB→TTL模块)。

   HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

CH340模块                                 HC-05模块

VCC(5V)  ——————————  VCC

     GND   ——————————  GND

     RXD   ——————————  TXD

     TXD   ——————————  RXD

②蓝牙模块有两种工作模式:命令相应模式、自动连接模式;

首先说一下如何进入命令响应模式与自动连接模式

i 命令响应模式:在蓝牙模块中有一个小按键,将HC-05与CH340连接后长按着按钮给模块上电,led灯快闪。

ii自动连接模式:什么也不用管,将HC-05与CH340连接后,插上电脑上电即可,led慢闪。

命令响应模式:是用AT对蓝牙模块工作的配置(相当于蓝牙模块的初始化配置各种参数)

                         波特率固定为:38400(即向HC-05写AT指令时波特率为38400)

常用的几种AT指令:(选上发送新行)

指令名 响应 含义

AT+RESET

OK 模块复位

AT+ORGL

OK 恢复默认状态

AT+ADDR?

+ADDR:Param OK

获得蓝牙模块地址

AT+NAME=Param

OK

设置设备名称  Parm:想要设置的名字

AT+NAME?

+NAME:Param OK

获得设备名称

AT+PSWD=Param

OK

设置模块密码  Parm:想要设置的密码;,默认为“1234”

AT+PSWD?

+PSWD:Param OK

获得模块密码

AT+UART=Param1,Param2,Param3

OK

设置串口参数  Param1:波特率 ; Param2:停止位 ;Param3:校验位

AT+UART?

+UART:Param1,Param2,Param3 OK

获得串口参数

AT+ROLE=Param +ROLE:Param OK Param:参数取值如下:0—从角色;1—主角色;2—回环角色;默认值:0

 AT指令错误返回

错误码 说明
0 AT 命令错误
1 指令结果为默认值
2 PSKEY 写错误
3 设备名称太长(超过 32 个字

举例:

 HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

自动连接模式:将自动根据命令响应模式下事先设定的方式连接的数据传输(在该模式下才能与手机等其他蓝牙设备连接)      波特率默认:9600(即HC-05与其他蓝牙通信时默认波特率为9600)

HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

 二、手机与蓝牙的连接

想要手机与蓝牙进行传输数据,首先肯定要建立手机与蓝牙的连接,(和我们用的蓝牙耳机差不多,首先得先在手机上找到蓝牙设备,并进行连接),那么问题来了,应该如何连接。

第一步:配置蓝牙模块基本信息

     AT+NAME=HC-05   修改蓝牙模块名称为HC-05

    AT+ROLE=0    蓝牙模式为从模式

   AT+CMODE=1   蓝牙连接模式为任意地址连接模式,也就是说 该模块可以被任意蓝牙设备连接

   AT+PSWD=1234   蓝牙配对密码为1234

   AT+UART=9600,0,0  蓝牙通信串口波特率为9600,停止位1位, 无校验位
第二步:在手机上下载“蓝牙调试助手”

本人所用的蓝牙串口助手是自己使用appinventor开发的app,功能还算可以,若大家有更好用的app可以将下载连接放在评论区,共享一下!!!嘿嘿嘿

此处是下载连接:链接:https://pan.baidu.com/s/1r21BoQ8snUzCl0Iy59Pzgw 
提取码:yzh0

HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

连接步骤:1、在手机连接之前,一定要现在设置中与蓝牙模块配对,然后再用蓝牙app连接蓝牙

                   2、打开蓝牙APP,点击左上角连接蓝牙模块,app右上角显示当前连接是否成功(若连                           接失败,检查蓝牙模块是否正常,没问题重新连接即可)。

三、用手机通过蓝牙控制单片机

1、蓝牙app端

HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

 手机蓝牙串口助手向单片机     发送“1”,点亮LED灯。

                                                 发送"0",关闭LED灯。

蓝牙串口助手,有编辑名称按键、编辑发送数据按键。 通过给按钮赋值,发送需要的数据,方便快捷。

      HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序    HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序   HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

2、单片机端(代码处理接收到的数据,执行相应的功能)

①51单片机程序:

/*****************************************************************
接线方式:
         单片机的TXD-->HC-05的RXD
         单片机的RXD-->HC-05的TXD
				 P1.0口  接  LED的阴极
				 VCC     接  LED的阳极
*****************************************************************/
#include <reg52.h>
#define  uchar unsigned char
#define  uint unsigned int
sbit LED=P1^0;
/*****************************************************************
*接收中断服务子程序
*****************************************************************/
void Uart_Isr(void)  interrupt 4
{
	uchar Recv;
	if(RI==1)
	{
		RI=0;
		Recv = SBUF;      //接收数据
			if(Recv == '1')	 
		{
				LED = 0;//接收到1亮灯
		}
		else
		{
				LED = 1; //其他情况灯灭
		}

	}
	
}
/*****************************************************************
*串口初始化
*****************************************************************/
void Uart_Init(void)
{
  SCON = 0x50;         //方式1 8位数据 接收地址甄别禁止 接收使能 0101 0000
	PCON = 0x00;         //波特率不增倍
	TMOD = 0x20;         //T1,8位自动重装
	TH1 = 0xfd;	  //波特率9600
	TL1 = 0xfd;
	EA   = 1;
	ES   = 1;
	TR1 = 1;            //启动t1
}
/*****************************************************************
*主程序
*****************************************************************/
void main(void)
{
	Uart_Init();
	while(1);
}

②:stm32程序

main.c:

int main(void)
{	

	u8 receive_data;

	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	 //NVIC分组2:2位抢占优先级,2位响应优先级
	delay_Init();						// 延时初始化(注:调用延时函数之前,必须先调用delay_Init()将SysTick初始化)
	uart2_init(9600);

	while(1)
	{
		if(USART_GetFlagStatus(USART2,USART_FLAG_RXNE)==1)     
		{
			receive_data=USART_ReceiveData(USART2); 
			
			if(receive_data == 0x31)       // PA1输出高,点亮LED      
			{
				GPIO_SetBits(GPIOA,GPIO_Pin_1);				
			}
			else if(receive_data == 0x30)  // PA1输出高,点亮LED 
			{
				GPIO_ResetBits(GPIOA,GPIO_Pin_1);				
			}
		}

	}
	
}

uart2.c

#include "usart2.h"	  
// 	 
//如果使用ucos,则包括下面的头文件即可.
#if SYSTEM_SUPPORT_OS
#include "includes.h"					//ucos 使用	  
#endif
 


void uart2_init( u32 bound )
{
	/* GPIO端口设置 */
	GPIO_InitTypeDef	GPIO_InitStructure;
	USART_InitTypeDef	USART_InitStructure;


	RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE ); 
	RCC_APB1PeriphClockCmd( RCC_APB1Periph_USART2, ENABLE );         /* 使能USART1,GPIOA时钟 */

	/* PA2 TXD2 */
	GPIO_InitStructure.GPIO_Pin	= GPIO_Pin_2;
	GPIO_InitStructure.GPIO_Speed	= GPIO_Speed_50MHz;
	GPIO_InitStructure.GPIO_Mode	= GPIO_Mode_AF_PP;
	GPIO_Init( GPIOA, &GPIO_InitStructure );

	/* PA3 RXD2 */
	GPIO_InitStructure.GPIO_Pin	= GPIO_Pin_3;
	GPIO_InitStructure.GPIO_Mode	= GPIO_Mode_IN_FLOATING;
	GPIO_Init( GPIOA, &GPIO_InitStructure );


	/* USART 初始化设置 */
	USART_InitStructure.USART_BaudRate		= bound;                                /* 串口波特率 */
	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( USART2, &USART_InitStructure );                                             /* 初始化串口1 */
	USART_Cmd( USART2, ENABLE );                                                            /* 使能串口 2 */
}

四、两个蓝牙之间的主---从模式

HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

 用于两个单片机中间非连线通讯

这时需要两个蓝牙模块,将其中一个设置成主机,另一个设置成从机。

     (主蓝牙)                                                   (从蓝牙)

AT+NAME=CH-05-Z                                           AT+NAME=CH-05-C   (设置蓝牙名称)

AT+PSWD=1234                                                 AT+PSWD=1234     (设置蓝牙密码)

AT+ROLE=1                                                       AT+ROLE=0            (设置主从:0为从1为主)

AT+ADDR?                                                         AT+ADDR?              (查询蓝牙地址)

AT+UART:9600,0,0                                            AT+UART:9600,0,0   (设置波特率9600)
AT+LINK=从蓝牙地址(蓝牙相互连接)           AT+BIND=master的地址(查询之后绑定主蓝) 

注意:一定要保证两蓝牙的密码一样 

以上配置可以在电脑端通过串口调试助手配置好,然后单片机接上蓝牙模块即可,模块上电后主从机会自动建立连接,连接成功后,主从机就可以通过串口通信了(透传模式 :发什么收什么)。文章来源地址https://www.toymoban.com/news/detail-406596.html

到了这里,关于HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手把手教你使用--常用模块--HC05蓝牙模块,无线蓝牙串口透传模块,(实例:手机蓝牙控制STM32单片机点亮LED灯)

    最近在学STM32,基本的学完了,想学几个模块来巩固一下知识,就想到了蓝牙模块。玩啥好难过有很多博客教怎么连的,但自己看起来还是有点糊涂。模块的原理和知识点我就不讲解了,这里我主要 手把手 记录一下我是如何对蓝牙模块进行学习和使用的。 所使用的资料和工

    2024年02月02日
    浏览(86)
  • HC-05蓝牙模块连接到安卓手机,实现通信

    准备好的硬件:1、usb转ttl模块   2、hc-05模块 准备好的软件:1、pc端 串口调试助手 2、手机软件 蓝牙调试器(推荐)  3、ch340 软件下载链接:串口调试助手:UartAssist串口调试助手 V5.0.2-软件工具-野人家园 (cmsoft.cn)                          蓝牙调试器:https://pan.baidu.co

    2023年04月10日
    浏览(67)
  • HC-05蓝牙模块调试及与手机通信

    实现HC-05蓝牙模块的调试及与手机简单通信 目录 1.HC-05蓝牙模块介绍 2.HC-05蓝牙模块调试所需实物 3.蓝牙与USB TO TTL模块接线方式 4.进入AT模式调试参数 5.主从模式简介 6.返回正常工作模式,用手机软件连接测试 HC-05蓝牙模块是一种常用的蓝牙串口传输模块,具有简单易用和广泛

    2024年02月08日
    浏览(58)
  • 蓝牙模块(HC-05)与手机连接,蓝牙与蓝牙互联,电脑通过蓝牙控制单片机

    HC-05蓝牙模块,USB TO TTL手机APP为SPP蓝牙串口 第一章:蓝牙模块配置 一:HC-05与USB TO TTL连接 EN:为使能引脚,一般不接 VCC:接USB TO TTL模块的5v脚(3.3v不亮) GND:接USB TO TTL模块的GND脚 TXD:接USB TO TTL模块的RXD脚 RXD:接USB TO TTL模块的TXD脚 STATE:状态引脚,一般不接 二:进入

    2024年02月12日
    浏览(71)
  • HC05蓝牙模块AT指令与手机蓝牙控制STM32板载LED

    本文讲述了HC-05蓝牙模块的配置和其与STM32F103单片机的连接。 代码使用 HAL库函数 编写。 常见的HC-05模块: 通过使用AT指令,我们对蓝牙模块可以进行查看版本号、波特率、配对密码、设置/查询设备名称等多达30多种配置方式。 硬件连接:使用USB转TTL模块连接电脑和蓝牙模块

    2024年02月11日
    浏览(72)
  • C51单片机利用HC-05蓝牙模块实现手机点灯

    蓝牙通信,实现手机端远程(15米)控制单片机,这听起来对于初学者的我来说,是那么不可思议,经过不断地实验,阅读其他大佬的文章,终于实现了。 在有基础的通信原理知识的前提下,知,HC-05蓝牙模块与51的通信其实很简单,就是蓝牙模块的RXD(接收端)接单片机的TXD(发送

    2024年02月16日
    浏览(69)
  • HC-05蓝牙模块的使用

    文章目录 前言 一、模块介绍 二、使用步骤         这次记录一下有关蓝牙模块的学习,我单独将蓝牙模块从各种单片机中脱离出来。因为蓝牙模块不同于其他模块,它具有极高的泛用性,在STM32以及51系列单片机均会经常用到。 一、模块介绍           我使用的蓝牙模块

    2024年02月19日
    浏览(48)
  • 蓝牙模块HC-05使用指南

    HC-05蓝牙模块是一种基于蓝牙协议的简单无线通信设备。该模块基于BC417单芯片蓝牙IC,符合蓝牙v2.0标准,支持UART和USB接口。 具有两种工作模式:命令响应工作模式和自动连接工作模式。 当模块处于命令响应工作模式(或者AT模式)时能才能执行 AT 命令,用户可向模块发送各

    2024年02月02日
    浏览(48)
  • 蓝牙模块HC-05 AT指令使用以及两个蓝牙模块的配对

      蓝牙模块用的就 是某宝常见的蓝牙模块,首先要将蓝牙模块进入AT模式,按住蓝牙按键后再通电就会进入蓝牙的AT模式,进入AT模式后蓝牙led慢闪,然后就可以利用TTL或者J-Link与串口助手给模块发送AT指令了,AT指令有很多,这里我讲几个常用的就行。 初始波特率好像是384

    2024年02月03日
    浏览(75)
  • 关于HC05 蓝牙模块与与蓝牙模块连接

    在通常的电子设计中,一般采用蓝牙模块与上位机(手机)连接来与电子设备通信,实现对电子设备的控制。当然也可以通过WiFi模块等其他通信模块进行通信。这里就介绍一下蓝牙模块之间的连接,能够摆脱上位机,实现设备与设备之间的通信。 蓝牙模块需要通过AT指令进行

    2024年02月16日
    浏览(101)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包