星闪 / Wi-Fi(WS63 模组)

星闪是可选硬件。不焊时可配置 SCI0 为普通 UART 口;
焊了星闪后需要配置 SCI0 归 AT 指令专用 —— 此时不要接 USB-TTL,否则 AT 指令发不出去。

一、硬件连接

WS63 LT7589 说明
TX RXD0(EPORT2_1) 模块发 → MCU 收
RX TXD0(EPORT2_0) MCU 发 → 模块收
VCC / GND 3.3V / GND 峰值电流较大,注意电源

AT 指令必须大写,且以 CRLF 结尾。

二、快速上手

#include "wifi.h"

UartTFT_SCI0_Init(115200);
WiFi_Start();                    // 一次性调用,立即返回

while (1) {
    WDT_FeedDog();
    UART0_PollRx();
    WiFi_Task();                 // 每帧推进一小步
    UI_Frame();                  // UI、触摸、串口业务照常调用,否则会阻塞UI
}

改 SSID / 密码(量产必改):User/wifi.c 里的 WIFI_SSID / WIFI_PASSWORD 宏。

查连接状态:

if (WiFi_QueryStatus() == 0) {
    LTPrintf("SSID=%s RSSI=%d IP=%s\r\n",
             g_wifi_status.ssid, g_wifi_status.rssi, g_wifi_status.ip);
}

三、API

生产用:

函数 说明
WiFi_Start() 启动状态机,一次性调用
WiFi_Task() 每帧推进,完成停在 WIFI_ST_DONE

调试用(阻塞,会卡住主循环,生产代码别用):

函数 说明
WiFi_Init() AT → STARTSTA → DHCP
WiFi_Connect(ssid, pwd) 连接 AP
WiFi_QueryStatus() 综合查询,返回 0 = 就绪
WiFi_AT(cmd, ms) 发一条 AT 并等待应答
WiFi_SendCommandNoWait(cmd) 发 AT 不等应答

四、本工程用到的 AT 指令

指令 说明
AT 握手,回 OK
AT+STARTSTA 启 STA
AT+DHCP=wlan0,1 开 DHCP
AT+CONN="<ssid>",,"<pwd>" 连 AP(非阻塞,OK 只表示下发成功)
AT+STASTAT 查连接状态,status 0=未连 1=已连
AT+DHCP=wlan0,2 取 IP(本工程用它拿地址)
AT+PING=<IP> Ping,IP 不带引号

完整指令集见 开发文档/星闪/WS63V100 AT命令 使用指南_07.pdf。
从 ESP8266 移植时注意:WS63 没有 CWMODE / CWJAP / GMR / CIFSR,
对应换成 AT+STARTSTA / AT+CONN / AT+SYSINFO / AT+IFCFG。

五、两个必踩的坑

1. 不能用 +NOTICE:CONNECTED 判断连上了

WS63 上电会往 SCI0 倒 1~3KB boot log,而 SCI0 RX FIFO 只有 8 字节深,
溢出时整批 flush 会把这条短消息一起冲掉。
改为主动轮询 AT+STASTAT(1 秒一次,最多 30 次)—— wifi.c 就是这么做的。

2. ping 解析必须等 "X received" 到齐

模组分包吐出,先到 "4 packets transmitted,",后半个短句还没到。
这时解析会把 received 读成 0,出现「4/4 全通却判 FAIL」的假失败。
wifi_ping_check() 已处理,自己写解析时要等完整的两句话。

六、排障

现象 原因 / 处理
AT 无应答 没上电 / TX-RX 没交叉 / 固件不对;状态机重试 8 次后报 No AT response
收到乱码 波特率不匹配(常见 921600),改 UartTFT_SCI0_Init() 参数
AT+CONN 回 OK 但连不上 AT+CONN 是非阻塞的,要轮询 AT+STASTAT
连上拿不到 IP 路由器 DHCP 未开 / IP 池满 / AP 隔离
网关通外网不通 路由器无上行 / 防火墙拦 ICMP
网关都不通 AP 隔离 / 网段不对(实机常见 errno 113,外网正常则不影响业务)
Host can't be resolved AT+PING 参数带了引号,去掉

七、注意事项

项 说明
指令格式 大写 + CRLF 结尾
引号 SSID / 密码用双引号;AT+PING 的 IP 不用引号
转义 SSID / 密码含 , 或 " 要加 \
RX FIFO 仅 8 字节,必须 RXWATER=1 且主循环及时处理
缓冲 wifi_rx_buf 1024 字节,boot log 可达 1~3KB,溢出是常态(靠轮询兜底)
PIT0 已被 WiFi 占作毫秒时钟,另用定时器要避开
不焊星闪 注释 main.c 里的 WiFi_Start(),并去掉循环里的 WiFi_Task()
量产 改 WIFI_SSID / WIFI_PASSWORD
作者:罗珍雪  创建时间:2026-10-20 10:27
最后编辑:罗珍雪  更新时间:2026-11-02 20:02
上一篇:
下一篇: