各位专家、您好!
我仍在为 CC3120构建自己的 lite 驱动程序(而不是使用 TI SDK)。 到目前为止、HTTP 部分已经完成并正常工作。 然后、我开始设计插座驱动器。 MCU 通过 UART 接口与 CC3120通信。 发送/接收到/接收到 CC3120的命令/响应运行良好。
CC3120是 AP 角色。 MCU 创建 TCP 服务器套接字、绑定地址、然后通过向 CC3120发送命令来侦听客户端连接。
macOS 是 STA 角色。 macOS 连接到 CC3120后会执行一个非常简单的 TCP 客户端程序。
服务器接受客户端后、客户端(macOS)将向服务器发送/接收数据。 服务器(MCU)还将通过每500ms 发送一次命令 CC3120来向客户端发送/接收数据。 对于 recv()操作,可以正确接收来自 CC3120的异步数据。 但是对于 send()操作,客户端可以接收正确的数据大小(24字节),但数据内容不正确。 以下是客户端 recv()数据日志(十六进制):
buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 A4 18 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 17 00 00 00 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 17 00 00 00 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08 buf[24]:E0 43 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 00 01 00 14 00 01 08
从数据日志中、我可以看出"18 00 01 00"是"Tx 命令描述"。 不适合他人。 我已经用不同的模式(例如全0、全1、0、1、2...23)预先填充了数据(在发送之前)、但结果是相同的。
- STATUSR LUEN=24 (即18 00)
- SD = 01
- FamilyAndFlags = 00
为什么数据中显示 Tx 命令说明? 显然、错误数据必须由 CC3120而不是客户端程序 (macOS)引起。
有什么想法吗?