From 314ebd2cfe77da9429ac29f14aaeb0536c03e727 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Fri, 30 Oct 2026 11:08:08 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E5=B1=8F=E6=9D=BF=E9=93=BE=E8=B7=AF):=20?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A5=E5=BF=97=E5=8F=A3=E8=81=94=E5=8A=A8?= =?UTF-8?q?=E7=9A=84=E5=8E=86=E5=8F=B2=E5=86=B2=E7=AA=81=E6=8F=8F=E8=BF=B0?= =?UTF-8?q?=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 屏板链路设计说明 §2 删「日志口联动」整行:现时态写成「共用 DR 会 互相插字节」的历史归因会误导新读者(现状两条流早已分家) - 产品需求 §9.14 第三批行同步去掉同族机理括注,保留「第 16 条排在 10 之前:日志先腾出 USART1,屏板链路才能独占」的约束本身 - 端口归属现状另两档已有专述:产品需求 §4.2 表、控制台单写者日志 设计说明 §11;历史细节走 git log --- docs/产品需求/产品需求设计文档.md | 2 +- docs/子系统设计/屏板链路设计说明.md | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/docs/产品需求/产品需求设计文档.md b/docs/产品需求/产品需求设计文档.md index 678b46cc..7f1f6483 100644 --- a/docs/产品需求/产品需求设计文档.md +++ b/docs/产品需求/产品需求设计文档.md @@ -2557,7 +2557,7 @@ docs/任务规划/UI补齐.md §5);原「当前执行 6 项」(记录 5 |---|---|---| | 第一批(无跨端风险,可独立发版) | 3、6、8 | 只动本端,旧客户端不受影响 | | 第二批(跨端,须与客户端同步发版) | 2、4、5、7、9 | 报文口径变更,两端必须同版本 | -| 第三批(**独立立项**,不随 RS-485 冻结) | **16**、10、11、12、13、14 | 屏板串口通道是**独立需求**,与 §5.10 冻结的"对下采集簇"不是一回事。**第 16 条必须排在 10 之前**:日志不腾出 USART1,屏板链路就没法独占这条通道(两者共用同一个 `USART1->DR`,同时用就是互相插字节) | +| 第三批(**独立立项**,不随 RS-485 冻结) | **16**、10、11、12、13、14 | 屏板串口通道是**独立需求**,与 §5.10 冻结的"对下采集簇"不是一回事。**第 16 条排在 10 之前**:日志先腾出 USART1,屏板链路才能独占这条通道 | > ⚠ **唯一破坏性变更**:第 2 条把 INIT 应答从 8 B 改成 **16 B**。**旧客户端会把 16 B 的前 8 B 当全部、 > 把后 8 B 当作下一帧的 TAG 去找**,解析状态机会被这 8 B 拖住直到超时——表现为"连上了但不出图"。 diff --git a/docs/子系统设计/屏板链路设计说明.md b/docs/子系统设计/屏板链路设计说明.md index 703c6284..ddfe51c3 100644 --- a/docs/子系统设计/屏板链路设计说明.md +++ b/docs/子系统设计/屏板链路设计说明.md @@ -55,7 +55,6 @@ flowchart TB | 全局 UART 回调 | `HAL_UARTEx_RxEventCallback` / `HAL_UART_ErrorCallback` / `HAL_UART_TxCpltCallback` 的**唯一实现处在 `Drivers/BSP/RS485/rs485.c`**,各含一行 `sb_link_on_*` 转发;按句柄过滤在 `sb_link` 内做 | 三个都是全局单例:再定义一份就是链接期 multiple definition;收在同一文件,下一个加通道的人一眼看到全部 | | 错误处理 | 按 **SR → DR 顺序**清 ORE/NE/FE/PE;**重挂判据用 `RxState == READY` 而非错误位**(ORE 阻塞型须重挂,NE/FE 非阻塞、接收还在跑,再挂只拿 `HAL_BUSY`);TX 被错误打断时按 `gState != BUSY_TX` 清残留 busy | ORE 锁存 = 接收再也进不来;残留 busy = 之后每次召唤都被判"上一帧还在发"→ rx 涨 tx 冻结 | | 链路监视 | `rx_ok` 计数 **≥10 s 不前进 → 判离线**(`SB_LINK_OFFLINE_MS`),恢复由下一次有效召唤;5 s 统计行只在计数有变化时打 | 屏板 ≈5000 s 自复位有 ≈1 s 空窗,按 500 ms 判会把"歇口气"判成离线反复跳;屏板无背光 100 s 熄灭也**不是**掉线(按键即复亮) | -| 日志口联动 | 控制台已迁 **UART5(RS232#1)**,USART1 专用屏板;收口在 `App/log/console_log.c` 的 `CON_UART*` 单点宏 | 两条流共用同一个 `USART1->DR` 会互相插字节(症状 = 屏板偶发花屏 + 日志乱码);台架端子见 §3.2 | ## 3. 物理接线