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+NAME=HC_05)修改名称为HC_05 响应OK

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

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

5.修改配对密码 AT+PSWD=<Param> 如 AT+PIN="8888"\r\n (此处要加双引号)修改密码位8888

其他:可以查询AT指令集

二:代码如下:

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

static void HC05_NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure;
   
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
   
    NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}
void BLT_USART_Config(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
  USART_InitTypeDef USART_InitStructure;
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE); 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
//为什么推挽复用功能 因为通过片内外设USART控制高or低电平不是ODR寄存器
//可以查数据手册每个外设应该引脚模式配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_Init(GPIOB, &GPIO_InitStructure);
      
 
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
   GPIO_Init(GPIOB, &GPIO_InitStructure);
    //我的模块不配置38400会出现乱码
  USART_InitStructure.USART_BaudRate = 38400;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  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); 
  
  
  HC05_NVIC_Configuration();
  
  USART_ITConfig(USART3, USART_IT_RXNE, ENABLE);
  
  USART_ITConfig (USART3, USART_IT_IDLE, ENABLE ); 
  USART_Cmd(USART3, ENABLE);
  USART_ClearFlag(USART3, USART_FLAG_TC);
}
#define USART_BIFF_SIZE 1024
typedef struct 
{
volatile    uint16_t datanum;
uint8_t     uart_buff[UART_BUFF_SIZE];    
uint8_t     receive_data_flag;
}ReceiveData;
ReceiveData USART3_ReceiveData;
void USART3_IRQHandler(void)
{
    uint8_t ucCh; 
    if(USART_GetITStatus(USART3, USART_IT_RXNE) != RESET)
    {
      ucCh = USART_ReceiveData(USART3);
      if(USART3_ReceiveData.datanum < UART_BUFF_SIZE)
      {
        if((ucCh != 0x0a) && (ucCh != 0x0d))
        {
          USART3_ReceiveData.uart_buff[BLT_USART_ReceiveData.datanum] = ucCh;                 
          USART3_ReceiveData.datanum++;
        }
      }
    }
    if(USART_GetITStatus(USART3, USART_IT_IDLE ) == SET )                                         
    {
        USART3_ReceiveData.receive_data_flag = 1;
        USART3_ReceiveData(USART3);                                                              
    } 
}

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

最后需要手机APP蓝牙助手的可以到博主的资源中下载(免费)!

目录
相关文章
|
存储 缓存 安全
10款轻量型的嵌入式GUI库分享
10款轻量型的嵌入式GUI库分享
1205 1
|
移动开发 数据安全/隐私保护
HC05蓝牙模块与手机APP连接
HC05蓝牙模块与手机APP连接
817 0
|
Linux 网络安全
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)
|
Android开发
Android Studio解决导入别人源码报红问题
当我们下载别人的源码导入到自己的Android Studio中时可能出现各种红色警告,不管是Clean Project还是Rebuild Project都不管用,但是尴尬的是源码还能正常运行,那我们该如何解决呢? 解决方法 :点击左上角File——>Invalidate Caches/Restarts.
2059 0
|
7月前
|
前端开发 Docker 容器
写作利器,一款极简的Markdown 编辑器
WeChat Markdown Editor 是一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性。
332 70
写作利器,一款极简的Markdown 编辑器
|
12月前
|
安全 开发工具 数据安全/隐私保护
代码管理记录(一): 码云Gitee代码提交和维护
本文介绍了Gitee平台,提供了代码托管服务,并详细说明了从新建仓库到代码提交的步骤。
335 1
代码管理记录(一): 码云Gitee代码提交和维护
|
12月前
|
Linux
网络IO管理
网络IO管理
639 0
|
移动开发 数据安全/隐私保护
HC05蓝牙模块与手机APP连接
HC05蓝牙模块与手机APP连接
690 1
|
前端开发 UED
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
723 5
|
存储 开发框架 前端开发
单片机与HC-05蓝牙模块通信
单片机与HC-05蓝牙模块通信
351 0