• 正文
  • 相关推荐
申请入驻 产业图谱

嵌入式开发中蓝牙模块的配置及使用

05/07 10:45
3436
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

大家好,我是专注分享职业规划/技术科普/智能生活有关原创文章的allen康哥。

蓝牙嵌入式开发中是经常使用的模块,今天介绍下在使用单片机开发中蓝牙模块的配置和使用。

1.模块选型

常见的蓝牙模块类型:

经典蓝牙(BR/EDR):如HC-05、HC-06(通过AT指令配置)。

低功耗蓝牙(BLE):如JDY-08、TI CC2541、Nordic nRF系列等。

集成协议栈的模块:如ESP32(支持蓝牙+WiFi)。

HC-05,这款模块适合初学者,就是通过UART直接通信。下面就以这款模块为例。

2. 硬件连接(以HC-05为例)

蓝牙模块引脚 STM32引脚 说明
VCC 3.3V/5V 注意模块电压要求
GND GND 共地
TXD USART_RX 如PA3(USART2)
RXD USART_TX 如PA2(USART2)
KEY GPIO/3.3V 用于进入AT模式

注意:

若蓝牙模块为5V电平,需使用电平转换电路(如分压电阻)。

部分模块需在AT模式下配置(如HC-05需拉高KEY引脚再上电)。

3. 软件配置

1.启用USART外设:

使用STM32CubeMX配置USART为异步模式(Asynchronous)。

设置波特率(如9600、115200,需与蓝牙模块匹配)。

启用USART中断(如需接收数据)。

2.编写串口收发代码:

// 发送数据到蓝牙模块
char msg[] = "Hello Bluetooth!rn";
HAL_UART_Transmit(&huart2, (uint8_t*)msg, strlen(msg), HAL_MAX_DELAY);

// 接收数据(中断模式)
uint8_t rx_buffer[128];
HAL_UART_Receive_IT(&huart2, rx_buffer, 1); // 每次接收1字节

3.中断回调处理:

void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
    if (huart->Instance == USART2) {
        // 处理接收到的数据(例如存入缓冲区)
        static uint8_t index = 0;
        rx_buffer[index++] = rx_byte;
        if (rx_byte == 'n' || index >= sizeof(rx_buffer)-1) {
            rx_buffer[index] = '';
            process_data(rx_buffer); // 自定义数据处理函数
            index = 0;
        }
        // 重新启用接收中断
        HAL_UART_Receive_IT(&huart2, &rx_byte, 1);
    }
}

4.蓝牙模块配置(AT指令)

通过发送AT指令修改蓝牙模块参数(如名称、配对码):

// 进入AT模式(HC-05需拉高KEY引脚后重启)
HAL_Delay(1000);
char at_cmd[] = "AT+NAME=MY_STM32rn";
HAL_UART_Transmit(&huart2, (uint8_t*)at_cmd, strlen(at_cmd), HAL_MAX_DELAY);

常见AT指令(HC-05为例):

AT+NAME=<name>:设置设备名称。

AT+PSWD=<pin>:设置配对码(如1234)。

AT+UART=<baud>,<stop>,<parity>:设置波特率。

5.解析数据

帧格式:[Start][Data][Checksum][End]

示例:$DATA,123,456,789#($为起始符,#为结束符)。

void process_data(uint8_t *data) {
    if (data[0] == '$' && data[strlen(data)-1] == '#') {
        // 提取有效数据并处理
        sscanf((char*)data, "$%[^#]", payload);
        // 进一步解析payload(如逗号分隔)
    }
}

6.调试工具

串口调试助手:验证蓝牙模块基础功能。

手机APP:如nRF Connect(BLE)、Bluetooth Terminal(经典蓝牙)。

逻辑分析仪:抓取UART信号排查通信问题。

资源链接:

HC-05 Datasheet

https://www.alldatasheet.com/datasheet-pdf/pdf/3042/MOTOROLA/HC05.html

相关推荐