docs(屏板链路): 删除日志口联动的历史冲突描述行
- 屏板链路设计说明 §2 删「日志口联动」整行:现时态写成「共用 DR 会 互相插字节」的历史归因会误导新读者(现状两条流早已分家) - 产品需求 §9.14 第三批行同步去掉同族机理括注,保留「第 16 条排在 10 之前:日志先腾出 USART1,屏板链路才能独占」的约束本身 - 端口归属现状另两档已有专述:产品需求 §4.2 表、控制台单写者日志 设计说明 §11;历史细节走 git log
This commit is contained in:
@@ -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 拖住直到超时——表现为"连上了但不出图"。
|
||||
|
||||
@@ -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. 物理接线
|
||||
|
||||
|
||||
Reference in New Issue
Block a user