HC05蓝牙模块与手机APP连接

简介: HC05蓝牙模块与手机APP连接

说明:我们可以通过TTL转USB模块使电脑和HC05相连 ,通过电脑蓝牙串口进行调试

我们上电时应该按住复位键再上电,这样才能进入AT模式(下图软件设置也能进入AT模式),否则是配对模式。

另外我们电脑串口波特率应该设置为38400 (AT模式都为38400)

:物理状态:AT模式下1s闪烁一次  配对模式下:等待连接时也是闪烁(但是比AT模式下间隔时间短) 连接成功时会双闪 以此来进行状态判断

引脚说明:

序 号 引脚
名称
说明
1 VCC 3.3/5V 电源输入
2 GND 地线
3 TXD 串口数据发送引脚,
TTL 电平
4 RXD 串口数据接收引脚,
TTL 电平
5 EN 模式引脚,悬空时默认
为低电平
 高电平时模块进入
AT 命令模式
 低电平时模块为串
口透传模式
6 STATE 配对状态输出
 配对状态时输出为
高电平
 未配对时输出为低

一:发送AT指令

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

模块与设备连接上,蓝牙模块即进入数据透传模式。\r\n 为直接按电脑回车键,如不能按回

车键则加\r\n。AT 指令不分大小写)

下面简单基本AT指令

1.测试指令:AT   响应OK

2.模块复位(重启) AT+RESET 响应OK

3设置蓝牙名称:.AT+NAME<Param>  如(AT+NAMEHC_05)修改名称为HC_05 响应OK

4.设置配对模式下的波特率 AT+UART=<Param>,<Param>,<Param> 如设置波特率为9600

AT+UART=9600,0,0\r\n   第一个0表示停止位为1位 第二个0表示无检验位

5.修改配对密码 AT+PIN<Param> 如 AT+PIN8888\r\n 修改密码位8888

其他:可以查询AT指令集

二:代码如下:

1.与蓝牙模块相连引脚配置(一般为USARTx)

1. static void HC05_NVIC_Configuration(void)
2. {
3.     NVIC_InitTypeDef NVIC_InitStructure;
4. 
5. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
6. 
7. 
8.     NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
9.     NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1;
10.     NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
11.     NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
12. NVIC_Init(&NVIC_InitStructure);
13. }
1. void BLT_USART_Config(void)
2. {
3.  GPIO_InitTypeDef GPIO_InitStructure;
4.  USART_InitTypeDef USART_InitStructure;
5. 
6.  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); 
7.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
8. 
9. 
10.   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
11. //为什么推挽复用功能 因为通过片内外设USART控制高or低电平不是ODR寄存器
12. //可以查数据手册每个外设应该引脚模式配置
13.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
14.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
15.   GPIO_Init(GPIOB, &GPIO_InitStructure);
16. 
17. 
18.    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
19.    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
20. GPIO_Init(GPIOB, &GPIO_InitStructure);
21.     //我的模块不配置38400会出现乱码
22.   USART_InitStructure.USART_BaudRate = 38400;
23.   USART_InitStructure.USART_WordLength = USART_WordLength_8b;
24.   USART_InitStructure.USART_StopBits = USART_StopBits_1;
25.   USART_InitStructure.USART_Parity = USART_Parity_No ;
26.   USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
27.   USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
28. 
29.   USART_Init(USART3, &USART_InitStructure); 
30. 
31. 
32.   HC05_NVIC_Configuration();
33. 
34.   USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
35. 
36.   USART_ITConfig (USART3, USART_IT_IDLE, ENABLE ); 
37. 
38.   USART_Cmd(USART3, ENABLE);
39.   USART_ClearFlag(USART3, USART_FLAG_TC);
40. }
1. #define USART_BIFF_SIZE 1024
2. typedef struct
3. {
4. volatile    uint16_t datanum;
5. uint8_t     uart_buff[UART_BUFF_SIZE];   
6. uint8_t     receive_data_flag;
7. }ReceiveData;
8. 
9. ReceiveData USART3_ReceiveData;
10. 
11. void USART3_IRQHandler(void)
12. {
13. uint8_t ucCh; 
14. if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
15.     {
16.       ucCh = USART_ReceiveData(USART3);
17. if(USART3_ReceiveData.datanum < UART_BUFF_SIZE)
18.       {
19. if((ucCh != 0x0a) && (ucCh != 0x0d))
20.         {
21.           USART3_ReceiveData.uart_buff[BLT_USART_ReceiveData.datanum] = ucCh;                 
22.           USART3_ReceiveData.datanum++;
23.         }
24.       }
25.     }
26.     if(USART_GetITStatus(USART3, USART_IT_IDLE ) == SET )                                         
27.     {
28.         USART3_ReceiveData.receive_data_flag = 1;
29. USART3_ReceiveData(USART3);                                                              
30.     } 
31. 
32. }

然后主函数中对数据进行处理就行啦!

目录
相关文章
|
1月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
568 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
2月前
|
移动开发 Android开发 数据安全/隐私保护
移动应用与系统的技术演进:从开发到操作系统的全景解析随着智能手机和平板电脑的普及,移动应用(App)已成为人们日常生活中不可或缺的一部分。无论是社交、娱乐、购物还是办公,移动应用都扮演着重要的角色。而支撑这些应用运行的,正是功能强大且复杂的移动操作系统。本文将深入探讨移动应用的开发过程及其背后的操作系统机制,揭示这一领域的技术演进。
本文旨在提供关于移动应用与系统技术的全面概述,涵盖移动应用的开发生命周期、主要移动操作系统的特点以及它们之间的竞争关系。我们将探讨如何高效地开发移动应用,并分析iOS和Android两大主流操作系统的技术优势与局限。同时,本文还将讨论跨平台解决方案的兴起及其对移动开发领域的影响。通过这篇技术性文章,读者将获得对移动应用开发及操作系统深层理解的钥匙。
|
1月前
|
Android开发 Swift iOS开发
python 基于电脑蓝牙连接获取手机的实时数据
python 基于电脑蓝牙连接获取手机的实时数据
57 0
|
3月前
|
JavaScript IDE 开发工具
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
这篇文章介绍了在Vue 3 + TypeScript + Vite开发环境中解决找不到`.vue`文件模块或其类型声明错误的两种方法:使用VSCode的TypeScript Vue Plugin (Volar)插件或手动在`env.d.ts`文件中声明`*.vue`模块类型。
485 0
找不到模块“./App.vue”或其相应的类型声明。ts(2307)
|
3月前
|
Go 开发者
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
【应用服务 App Service】App Service发生错误请求时,如何查看IIS Freb日志,从中得知错误所发生的模块,请求中所携带的Header信息
|
3月前
|
关系型数据库 Linux PostgreSQL
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
【Azure 应用服务】Azure Function App Linux环境下的Python Function,安装 psycopg2 模块错误
|
3月前
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
【Azure Function】Function App和Powershell 集成问题, 如何安装PowerShell的依赖模块
|
4月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的多功能智能手机阅读APP的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的多功能智能手机阅读APP的详细设计和实现(源码+lw+部署文档+讲解等)
|
4月前
|
存储 移动开发 Android开发
使用kotlin Jetpack Compose框架开发安卓app, webview中h5如何访问手机存储上传文件
在Kotlin和Jetpack Compose中,集成WebView以支持HTML5页面访问手机存储及上传音频文件涉及关键步骤:1) 添加`READ_EXTERNAL_STORAGE`和`WRITE_EXTERNAL_STORAGE`权限,考虑Android 11的分区存储;2) 配置WebView允许JavaScript和文件访问,启用`javaScriptEnabled`、`allowFileAccess`等设置;3) HTML5页面使用`<input type="file">`让用户选择文件,利用File API;
|
4月前
|
小程序 安全 数据挖掘
陪玩语聊APP小程序定制开发模块功能
随着电竞行业的规范化,游戏陪玩软件兴起,提供专业陪玩服务。核心功能包括:多样化注册登录、用户资料展示、智能匹配筛选陪玩、语音互动(多人/私聊)、订单交易管理、陪玩入驻审核、数据分析、客服系统及社交功能。旨在融合游戏、语音聊天与社交,构建综合娱乐平台。

热门文章

最新文章