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

STM32L0+A7670SA发送JSON至Spring Boot服务器数据混叠问题

问题排查与修复建议

根据你描述的AT指令与JSON数据混叠导致服务器JsonParseException的问题,结合A7670SA模块的AT指令HTTP POST流程,常见问题点及修复方案如下:

1. 透传模式切换时机错误

A7670SA发送HTTP POST时,需先通过AT+QHTTPURL设置目标URL,再用AT+QHTTPPOST触发数据发送模式——此时模块会返回>提示符,必须等待该提示符完全出现后再发送JSON数据。如果在模块未返回>就推送JSON,会导致数据与之前的AT指令残留内容混在一起。

修复代码示例:

// 循环等待模块返回>提示符
while (USART_ReadData(USART2) != '>');
// 发送JSON数据
USART_SendString(USART2, json_data);
// 发送数据结束符(ASCII码0x1A,对应Ctrl+Z)
USART_SendData(USART2, 0x1A);

2. 串口接收缓冲区未清空

STM32的串口接收缓冲区可能残留之前AT指令的响应内容,若在发送JSON前未清空,这些残留数据会被一并发送至服务器,破坏JSON结构。

修复方案:

在进入数据发送模式前,强制清空串口缓冲区:

void USART_ClearBuffer(USART_TypeDef* USARTx) {
    while (USART_GetFlagStatus(USARTx, USART_FLAG_RXNE) != RESET) {
        USART_ReceiveData(USARTx);
    }
}

// 调用时机:发送AT+QHTTPPOST之后,等待>提示符之前
USART_ClearBuffer(USART2);

3. HTTP请求头部未正确设置Content-Length

若未明确指定Content-Length字段,服务器可能无法准确识别JSON数据的起始和结束位置,导致把后续的AT指令残留或模块响应内容当成JSON的一部分。

正确的AT指令流程示例:

// 设置HTTP头部的总长度(需计算头部字符串的实际长度)
USART_SendString(USART2, "AT+QHTTPHEADER=38\r\n");
// 等待模块返回OK确认
wait_for_ok();
// 发送具体头部内容
USART_SendString(USART2, "Content-Type: application/json\r\n");
USART_SendString(USART2, "Content-Length: ");
USART_SendString(USART2, json_length_str); // json_length_str为JSON字符串的长度数值
USART_SendString(USART2, "\r\n");
// 等待OK确认
wait_for_ok();

// 触发POST数据发送模式,指定JSON长度与超时时间
USART_SendString(USART2, "AT+QHTTPPOST=");
USART_SendString(USART2, json_length_str);
USART_SendString(USART2, ",10000\r\n"); // 超时时间设为10秒
// 等待>提示符
while (USART_ReadData(USART2) != '>');
// 清空缓冲区
USART_ClearBuffer(USART2);
// 发送JSON数据
USART_SendString(USART2, json_data);
// 发送结束符
USART_SendData(USART2, 0x1A);
// 等待模块返回POST结果
wait_for_ok();

4. 透传模式退出时机错误

发送完JSON结束符后,必须等待模块返回OK或HTTP响应状态码(如+QHTTPPOST: 200),确认POST操作完全完成后,再执行后续AT指令。若提前发送其他指令,会导致响应数据与新指令混叠,甚至服务器端接收到额外的AT指令片段。

5. JSON字符串本身的特殊字符未转义

确保生成的JSON字符串没有包含换行符、AT指令特殊字符(如\r、\n、+等),若存在需做转义处理——比如换行符替换为\\n,双引号内部的双引号转义为\",否则会被模块误解析为AT指令的一部分。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 01:52:40