恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
小鸿开发板SLE-UART透传通信实战
首页
资讯中心
/
小鸿开发板SLE-UART透传通信实战
小鸿开发板SLE-UART透传通信实战
发布时间:2026/8/24 23:33:27
小鸿开发板 SLE UART 透传通信实战前言小鸿开发板基于 WS63 芯片跑的是 OpenHarmony 系统除了 WiFi、蓝牙外还支持SLE星闪 / Super Link低功耗短距通信协议。SLE 相比经典蓝牙在时延、速率、抗干扰上有明显优势非常适合板间低功耗数据透传场景。官方仓库提供了丰富的 samples其中13_sle_uart就是 SLE UART 透传的完整示例一块板子作为 Server 广播服务另一块板子作为 Client 扫描并连接连接建立后两端串口数据即可互相透传。本文记录整个实战过程官方样例集成进主固件 → 分别编译出 Server / Client 两块镜像 → 烧录 → 两块板握手成功 → 双向透传验证附完整日志。一、准备工作硬件物料数量说明小鸿开发板2 块一块烧 Server 固件一块烧 Client 固件Type-C 数据线1 根烧录 / 串口日志共用USB 转串口线可选板载串口直连即可软件环境工具用途Windows 10/11烧录、串口调试WSL Ubuntu-22.04OpenHarmony 源码编译hb buildBurnTool固件烧录工具UartAssist串口调试助手115200 / 8 / 1 / 无校验注意编译必须在 Ubuntu 环境WSL 即可烧录用 Windows 端工具两边配合。二、集成官方样例 13_sle_uartSLE 工程在 WSL 的完整 OpenHarmony 源码树中目录为vendor/atomgit/xiaohong/。集成分四步1. 拉取官方样例从 AtomGit 克隆官方 samples 仓库把13_sle_uart目录拷贝进工程gitclone https://atomgit.com/xiaohong/xiaohong_samples.git xh_sampcp-rxh_samp/13_sle_uart vendor/atomgit/xiaohong/samples/2. 新建 samples/BUILD.gn在samples/目录下新建BUILD.gn引用 Server / Client 两个目标import(//build/lite/config/component/lite_component.gni) lite_component(sle_uart_server) { features [ 13_sle_uart:sle_uart_server ] } lite_component(sle_uart_client) { features [ 13_sle_uart:sle_uart_client ] }3. 主 BUILD.gn 挂载在工程根BUILD.gn中加入group(default) { deps [ :samples, # 新增 ] }4. 组件登记关键编译系统必须认识新组件需要改两处config.pyram_component里登记sle_uart_server/sle_uart_clientohos.cmakeCOMPONENT_LIST里登记同名组件参照工程里现有 demo如speaker_demo的写法即可。三、编译 Server / Client 镜像在 WSL 中进入工程根目录执行hb build-f编译 Server配置指向sle_uart_server首次编译约1 分 45 秒产物out/xiaohong/xiaohong/ws63-liteos-app/ws63-liteos-app_all.fwpkg 2,286,632 B编译 Client把三处配置切换为sle_uart_client后重新编译约1 分 41 秒out/xiaohong/xiaohong/ws63-liteos-app/ws63-liteos-app_all.fwpkg 2,282,152 B两份 fwpkg 都备份到 Windows 桌面sle_fw/目录备用。四、烧录固件用 BurnTool 分别烧录两块板板子固件说明第一块server_ws63-liteos-app_all.fwpkgSLE Server广播方第二块client_ws63-liteos-app_all.fwpkgSLE Client连接方烧录完成后断开两块板都接上串口两个 UartAssist 窗口115200。五、上电验证握手成功推荐顺序先给 Server 上电再给 Client 上电。若 Client 先开机扫描时 Server 还没广播要等重试Client 自带重试逻辑多数情况也能连上但顺序对最稳。Server 板日志关键行[sle uart server] sle uart add service, server_id:1, service_handle:10, property_handle:11 [sle uart server] sle_uart_local addr: 0x01 0x02 0x03 0x04 0x05 0x06 [sle uart server] local_name: sle_uart_server [ACore] sle start announce in, adv_id:1 ← 开始广播 [sle uart server] init ok ← 初始化完成等待 ClientClient 板日志关键行[adv_report] addr: 01:**:**:**:05:06 ← 扫到 Server 广播 sle_uart_server ← 识别到 Server 名字 [Connected] addr:01:**:**:**:05:06, conn_id:00 ← SLE 连接建立 [sle uart client] pair complete conn_id:0 ← 配对完成 received data: Hello Client ← 收到 Server 握手 received handshake from server, replying... ← 回复握手 handshake completed! UART data transfer enabled. ← ✅ 透传通道启用两端都出现handshake completed! UART data transfer enabled.即代表 SLE 链路和 UART 透传通道全部打通。六、双向透传测试在Server 板串口输入Hello Server→Client 板串口应收到相同内容在Client 板串口输入Hello Client→Server 板串口应收到相同内容测试成功即代表板间 SLE UART 透传完全打通之后可以把任意串口数据接到任意一块板另一端即可无线接收。七、踩坑记录heredoc 在 Windows cmd 下会被截断往 WSL 里传多行脚本时不要用 heredoc改成.py脚本文件再执行。WSL 后台编译被会话退出杀掉用setsid bash run.sh disown方式后台运行避免关掉 WSL 窗口后编译进程被回收。APP|init_sle_mac failed!不影响功能SLE 会退回默认地址01:02:03:04:05:06广播、连接、透传均正常。write_cfm_cb status:7Client 向 Server 写数据的确认回调返回非 0但握手已完成、透传实测正常暂不影响使用后续可深入排查属性句柄 / MTU 协商。八、总结从官方样例集成到两块板握手透传整个链路包含四个关键环节样例集成拷贝源码 BUILD.gn 挂载 config.py / ohos.cmake 组件登记缺一不可双镜像编译同一份代码通过配置切换分别编出 Server / Client 镜像烧录两块板各烧各的固件BurnTool 整包烧录验证先 Server 后 Client 上电以handshake completed为成功标志再测双向数据。SLE UART 透传打通后这块板子就成了一个低功耗无线串口节点后续可以在这个基础上扩展更丰富的场景无线传感器采集、板间指令下发、双机数据同步等。