You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Arduino UNO搭配HC-06蓝牙模块在MacBook上无法接收数据

Arduino UNO + HC-06蓝牙模块:仅能发送数据无法接收的排查方案

问题描述

我使用Arduino UNO搭配HC-06蓝牙模块,代码如下:

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); 

void setup() {
  Serial.begin(9600);
  BTSerial.begin(9600);
}

void loop() {
  if (BTSerial.available()) {
    char data = BTSerial.read();
    Serial.print("get data:");
    Serial.println(data);
  }

  if (Serial.available()) {
    char data = Serial.read();
    BTSerial.write(data);
    Serial.print("send data: ");
    Serial.println(data);
  }
}

设备与MacBook Pro通过蓝牙连接后,在串口监视器测试时,仅能打印send data信息,无法打印get data信息。

排查与解决方法

  • 核对硬件接线
    HC-06的TX引脚必须连接Arduino软件串口的RX引脚(即代码里的引脚10),HC-06的RX引脚连接Arduino软件串口的TX引脚(引脚11),交叉接线不能搞反。另外注意HC-06的供电电压是3.3V,不要直接接5V,避免模块损坏。

  • 确认波特率匹配
    HC-06默认波特率为9600,但如果之前修改过模块波特率,必须同步修改代码中BTSerial.begin(xxx)的数值,确保两端波特率一致。

  • Mac端正确发送数据
    Arduino串口监视器是和硬件USB串口通信的,要给HC-06发送数据,需要通过Mac的蓝牙串口:

    1. 打开终端,输入ls /dev/tty.*,找到HC-06对应的串口设备(格式类似/dev/tty.HC-06-DevB)
    2. 执行命令screen /dev/tty.HC-06-DevB 9600连接蓝牙串口
    3. 在这个screen窗口输入的内容,才会被HC-06接收,此时Arduino串口监视器就能打印get data信息
  • 修正代码语法错误
    原代码开头缺少#,正确的头文件引用应为#include <SoftwareSerial.h>,确保代码编译通过后再上传。

  • 排查模块硬件故障
    用USB转TTL模块单独连接HC-06,测试模块的收发功能是否正常,排除模块本身损坏的可能。

内容的提问来源于stack exchange,提问作者CYC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 15:48:13