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

如何在TeraTerm中通过AT命令读取Mbed Nucleo+JSN270的Buffer?

解决Nucleo上JSN270的AT命令Buffer读取问题

我仔细看了你的代码和场景描述,发现几个关键问题导致你读取不到正确的AT命令响应内容,咱们一步步来修正:

1. 先搞懂ATCmdParser的响应处理逻辑

你当前代码里at.send("at+ver") && at.recv("OK")只是验证命令是否执行成功(收到OK回执),但AT+VER返回的版本信息其实是在OK之前输出的,这部分内容并没有被捕获。直接调用at.read()大概率读到的是空字符或者内存垃圾值,因为ATCmdParser已经把响应内容处理过了。

2. 正确捕获AT命令的响应内容

ATCmdParser提供了带格式化匹配的recv方法,可以直接读取命令返回的有效内容,不用手动调用read。下面是修正后的完整代码:

#include "mbed.h"
Serial pc(SERIAL_TX, SERIAL_RX);
UARTSerial serial(D1, D0, 9600);
ATCmdParser at(&serial, "\r\n");

int main() {
    char buffer[100] = {0};  // 初始化buffer,避免输出未初始化的垃圾值
    pc.printf("发送AT+VER命令获取版本...\r\n");

    // 发送命令 → 读取版本内容 → 确认收到OK回执
    if (at.send("AT+VER") && at.recv("%s", buffer) && at.recv("OK")) {
        pc.printf("JSN270版本信息: %s\r\n", buffer);
    } else {
        pc.printf("获取版本失败或无响应\r\n");
        // 调试用:读取串口剩余内容排查问题
        int bytes_read = serial.read(buffer, sizeof(buffer)-1);
        if (bytes_read > 0) {
            buffer[bytes_read] = '\0';
            pc.printf("收到异常内容: %s\r\n", buffer);
        }
    }

    while(1) {
        ThisThread::sleep_for(1s);  // 保持程序运行
    }
}

3. 几个必须检查的细节

  • 串口引脚交叉确认:Nucleo的D1(TX)要接JSN270的RX,D0(RX)接JSN270的TX,别搞反了,这是新手最容易踩的坑。
  • 波特率匹配:确认JSN270的默认波特率是9600吗?有些模块出厂默认是115200,你可以先用TeraTerm直接连接模块发送AT+VER确认。
  • AT命令大小写:部分模块对AT命令大小写敏感,尽量用标准大写格式AT+VER,别用小写at+ver。

4. 调试排查技巧

如果还是读不到内容,先跳过ATCmdParser,用原生串口手动收发确认通信链路没问题:

#include "mbed.h"
Serial pc(SERIAL_TX, SERIAL_RX);
UARTSerial serial(D1, D0, 9600);

int main() {
    char buffer[100];
    pc.printf("手动发送AT+VER\r\n");
    serial.write("AT+VER\r\n", 7);
    
    ThisThread::sleep_for(500ms);  // 给模块足够的响应时间
    int len = serial.read(buffer, sizeof(buffer)-1);
    if (len > 0) {
        buffer[len] = '\0';
        pc.printf("收到原始响应: %s\r\n", buffer);
    } else {
        pc.printf("未收到任何数据\r\n");
    }

    while(1) {}
}

如果这段代码能读到响应,说明链路没问题,再回到ATCmdParser的用法调整;如果读不到,就检查接线、波特率这些硬件层面的问题。

内容的提问来源于stack exchange,提问作者윤성권

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:14:10