fix(vd960DBN): UART2 粘帧/checksum fail — 高频打印关中断丢字节 + flag 不清
现场: LUP 帧后 checksum fail 刷屏 (坏帧: 7F 03 39 EF... 多帧拼接)。 根因链条: 1. LUP Rx 打印 190B @256000 = 7.4ms 关中断 (PRINT 临界区) → UART2(19200) RX 溢出丢字节 → 帧解析错位 → 粘帧 2. g_pkg_uart_2.flag 清理缺失: uart_srv 0xC0 分支不 InitPkgUart, tcp_json_push_sensor not authed 提前 return 也不清 → 坏帧反复处理 → checksum fail 刷屏 修复: - LUP Rx 打印 #if 0 (高频打印关中断是丢字节根因, 调试时开) - json_sensor_callback not authed 打印 #if 0 (每帧刷屏) - uart_srv 所有分支消费后统一 InitPkgUart (0xC0 + 非0xC0无BLE) - 顺带修 report disabled 双反斜杠
This commit is contained in:
@@ -174,12 +174,19 @@ void uart_srv(void)
|
||||
g_pkg_uart_2.pkg[0] = 0x8F;
|
||||
g_flag_notify_temp = set_response_tran_to_notify(g_pkg_uart_2.pkg, g_pkg_uart_2.offset, &g_notify_buftemp); // 保留给 BLE
|
||||
}
|
||||
// else: 回调已推送 TCP,直接清理
|
||||
/* 2026-08-13 修复: 0xC0 帧消费后必须清 flag —
|
||||
原缺失, auth 未通过时 tcp_json_push_sensor 提前 return
|
||||
也不清 → 坏帧/正常帧反复处理 (checksum fail 刷屏) */
|
||||
InitPkgUart(&g_pkg_uart_2);
|
||||
}
|
||||
else {
|
||||
if(g_flag_bt_state){
|
||||
g_flag_notify_temp = set_response_tran_to_notify(g_pkg_uart_2.pkg, g_pkg_uart_2.offset, &g_notify_buftemp);
|
||||
InitPkgUart(&g_pkg_uart_2);
|
||||
}
|
||||
else {
|
||||
/* 2026-08-13 修复: 非 0xC0 + 无 BLE 连接也清 flag (原缺失) */
|
||||
InitPkgUart(&g_pkg_uart_2);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user