chen55025470 发表于 2026-7-3 11:54:09

【Telink TL322X 测评】第三章:串口日志与 USB CDC 识别测试

# 【Telink TL322X 测评】第三章:串口日志与 USB CDC 识别测试

* **本章继续梳理 TL322X 的日志输出链路,包括 USB 识别、板载 CH343 UART、文本日志输出和 VS Code/串口工具的配合方式。**

**## **3.0 当前自动化验证记录

**本章使用 **`ble_controller` 工程结构改造出 UART 文本日志固件,已经完成构建、烧录、读回校验和串口文本抓取:

| **项目**       | **结果**                                                               |
| ---------------- | ------------------------------------------------------------------------ |
| **SDK target** | `ble_controller`                                                   |
| **固件**       | `firmware\eval02_uart_text_log.bin`                              |
| **大小**       | **135716 bytes**                                                       |
| **SHA256**   | `A79E2B5D12E6CD52AF25B98842D1FFF4B270D0A2F7566D6FD40C1063DBAD6C8E` |
| **烧录验证**   | `verified`,读回 SHA256 与本地固件一致                           |
| **烧录日志**   | `logs\flash_eval02_uart_text_log.log`                              |
| **串口日志**   | `logs\uart_text_eval02_uart_text_log.log`                        |
| **UART 输出**| `COM41`,1000000 8N1,TEXT 模式可直接显示 ASCII                  |

**本章已达到的效果:UART 文本日志固件可以从独立源码副本构建并写入开发板,Flash 读回校验通过。Telink CDC 仍然是 WinUSB 下载口,不作为普通串口使用;板载 CH343 USB 转 UART 映射到 **`COM41`,可直接看到 `` 文本日志。

## 3.1 本章任务目标

**本章主要完成以下任务:**

```
1. 记录 Windows 下开发板枚举出的 USB 设备;
2. 区分 Telink CDC WinUSB 下载口和普通串口 COM 口;
3. 构建并烧录 UART 文本日志固件;
4. 确认 SDK printf/log/HCI 默认输出接口;
5. 为后续 BLE、协议栈和功耗测试建立统一日志保存方式。
```

## 3.2 开发板与测试方式

**本章测试链路如下:**

```
设备管理器确认 Telink CDC / WinUSB
      ↓
构建 UART text log 固件
      ↓
烧录并读回校验
      ↓
检查板载 CH343 USB-UART COM 口
      ↓
打开 COM41 并按 TEXT 模式接收
      ↓
记录 `` 周期文本日志
```

**需要特别注意:**`Telink CDC` 这个名字容易误导。当前驱动状态显示它绑定 `WinUSB`,用于 BDT 下载和 TC 命令,不等同于 `USB Serial Device (COMx)`。

## 3.3 独立工程与 SDK 基线

**本章记录目录为:**

```
D:\Project\Evaluation\Telink\eval_projects\02_uart_log_cdc
```

**本章源码副本位于:**

```
src\sdk
```

**本章使用的主要源码入口为:**

```
src\sdk\vendor\ble_controller
```

**工程内关键记录文件:**

```
src\build_config.json
src\source_manifest.md
firmware\eval02_uart_text_log.bin
logs\flash_eval02_uart_text_log.log
logs\uart_text_eval02_uart_text_log.log
```

## 3.4 关键源码与配置

**与本章相关的主要文件如下:**

| **文件**                                       | **作用**                                  |
| -------------------------------------------------- | ------------------------------------------- |
| `src\sdk\vendor\ble_controller\main.c`       | **controller 示例入口**                   |
| `src\sdk\vendor\ble_controller\app.c`      | **UART 文本日志初始化和周期输出**         |
| `src\sdk\vendor\ble_controller\app_buffer.c` | **controller buffer 配置**                |
| `src\sdk\vendor\ble_controller\app_config.h` | **UART 文本日志、时钟、功能宏等配置入口** |
| `src\sdk\drivers\TL322X`                     | **TL322X 外设驱动源码**                   |

**当前 TL322X UART 文本日志配置如下:**

```
#define HCI_TR_EN                  0
#define TLKAPI_DEBUG_ENABLE          1
#define TLKAPI_DEBUG_CHANNEL         TLKAPI_DEBUG_CHANNEL_UART
#define TLKAPI_DEBUG_UART_PORT       DBG_UART_PORT2
#define TLKAPI_DEBUG_UART_TX_PIN   GPIO_FC_PD6
#define TLKAPI_DEBUG_UART_RX_PIN   GPIO_FC_PD7
#define TLKAPI_DEBUG_UART_BAUDRATE   1000000
```

**其中 **`PD6` 作为 TL322X 的 UART\_TX,接到 CH343 的 RXD;`PD7` 作为 TL322X 的 UART\_RX,接到 CH343 的 TXD。本章关闭 HCI 二进制传输,避免串口助手把不可打印字节显示成方框乱码。

## 3.5 编译、烧录与读回校验

**重新构建本章工程:**

```
powershell -NoProfile -ExecutionPolicy Bypass -File ..\run_tl322x_eval_matrix.ps1 -OnlyProjects 02_uart_log_cdc -NoFlash
```

**构建并补烧:**

```
powershell -NoProfile -ExecutionPolicy Bypass -File ..\run_tl322x_eval_matrix.ps1 -OnlyProjects 02_uart_log_cdc
```

**手动烧录命令格式:**

```
TC.exe all
TC.exe ulf 0 0 -d 1 --chip=TL322X
TC.exe wf 0 -i firmware\eval02_uart_text_log.bin -d 1 --chip=TL322X
TC.exe rf 0 135716 -o firmware\eval02_uart_text_log_readback.bin -d 1 --chip=TL322X
```

**当前读回校验结果:**

```
Firmware SHA256:
A79E2B5D12E6CD52AF25B98842D1FFF4B270D0A2F7566D6FD40C1063DBAD6C8E

Readback SHA256:
A79E2B5D12E6CD52AF25B98842D1FFF4B270D0A2F7566D6FD40C1063DBAD6C8E
```

**UART 文本日志校验命令:**

```
.\tools\uart_text_capture.ps1
```

```
Port: COM41
Baud: 1000000 8N1
text log count=100 tick=2400102664
text log count=101 tick=2424104424
text log count=102 tick=2448104496
```

## 3.6 实测现象

**当前已经确认:**

```
1. Telink CDC 下载口可以被 TC.exe 使用;
2. Telink CDC 当前不是普通 COM 口;
3. UART text log 固件可以构建、烧录并读回校验通过;
4. 板载 CH343 USB-UART 枚举为 COM41;
5. COM41 在 1000000 8N1 下可以直接显示 ASCII 文本日志;
6. 本章工程中的 src\sdk 可作为 UART 文本日志方向源码分析入口。
7. 设备管理器中 CH343 COM41 的截图;
8. 串口工具 TEXT 模式显示 `` 文本日志的截图;
9. 开发板复位后串口文本日志重新输出的视频;
10. USB 连接线、开发板和串口工具同框的实物验证素材。
```

## 3.7 图片和视频展示

* **设备管理器中 Telink CDC WinUSB 设备**

!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/114926jpzpm7rnig1zzdjg.png)

* **设备管理器中 **`USB-Enhanced-SERIAL CH343 (COM41)` 的截图
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/114954lmllemxjjh0j9nwm.png)

* `TC.exe` 写入、读回和 SHA256 一致的命令行截图
!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/115018r1wwrgaw67wd31mt.png)
* **串口工具 TEXT 模式显示 **`` 周期文本日志的截图

!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/115154ufpxdklr8aktradt.png)
* `app_config.h` 中 `HCI_TR_EN=0`、`PD6 TX / PD7 RX / 1000000` 配置截图

!(//m.qjumbo.com/forum/data/attachment/forum/202607/03/115237x99njzn44p9p4in6.png)

* **开发板连接电脑后,串口助手打开并持续输出文本日志,按键复位后,串口文本日志重新开始输出的过程视频**

​


## 3.8 问题记录

### 3.8.1 Telink CDC 不显示 COM 口

**Telink CDC 当前绑定 WinUSB,用于下载链路,不是 **`usbser` 串口。解决方法是把它作为 BDT/TC 下载口使用,日志口另行通过 UART 排针确认。

### 3.8.2 UART 引脚方向需要按开发板原理图确认

**开发板手册中 CH343 连接到 TL3228X 的 **`PD7(UART_RX)` 和 `PD6(UART_TX)`。因此本章文本日志使用 `TLKAPI_DEBUG_UART_TX_PIN = GPIO_FC_PD6` 输出日志,串口助手选择 `COM41 @ 1000000 8N1` 接收即可。

### 3.8.3 COM41 被串口助手占用

**自动化脚本第一次打开 **`COM41` 时返回 `Access denied`,原因是 `嵌核调试助手` 已经连接该串口。释放串口后,PowerShell 串口脚本可以正常打开 `COM41` 并抓取文本日志。

### 3.8.4 HCI 二进制数据在串口助手中显示为方框

`ble_controller` 默认 HCI UART 返回的是二进制协议包,例如 `04 0E 04 01 03 0C 00`。当前串口助手的接收窗口按文本显示,不可打印字节会显示为方框,看起来像乱码。解决方法是把本章固件改为 UART 文本日志版本,关闭 HCI Transport,并使用 TLKAPI 硬件 UART 输出 ASCII 日志。

## 3.9 本章测试结论

**阶段性结论:**

```
1. 02 号工程已经具备独立源码和可复现固件;
2. UART text log 固件构建、烧录和读回校验通过;
3. Telink CDC 是 WinUSB 下载口,不是日志 COM 口;
4. 板载 CH343 COM41 是本章 UART 文本日志验证入口;
5. 串口助手用 TEXT 模式可以直接看到 `` 周期日志。
```

## 3.10 本章小结

**第三章把“下载口”和“UART 日志口”这两个容易混淆的概念拆开了。当前下载链路已经可靠,UART 文本日志链路也已经通过板载 CH343 的 **`COM41` 验证成功。后续串口截图和录屏,可以沿用本章确认的 `1000000 8N1` 配置。

页: [1]
查看完整版本: 【Telink TL322X 测评】第三章:串口日志与 USB CDC 识别测试

Baidu
map