主题中讨论的其他器件:CC3220SF
我已经对 CC3220SF 模块进行了编程、该模块使用 UDP 消息通过 WiFi 与服务器设备进行来回通信。 不过、有时我会遇到 CC3220发送但无法接收的情况。 在这种情况下、我可以看到服务器接收到 CC3220发送的消息、但当服务器立即回复 sl_Recvfrom (..)时 对 CC3220的调用永不返回任何数据-它始终返回 SL_ERROR_BSD_EWOULDBLOCK。 同时、我还拥有 CC3220的对等器件、它们能够与服务器进行来回通信、而不会出现任何问题。
在我更改 CC3220的 IP 地址(每个器件使用静态 IP)后、问题似乎最频繁发生;如果我对器件进行下电上电、它会在重启后立即开始工作。 如果我碰巧在调试器中、并在一个断点处停止以检查变量状态、那么在我恢复后、它将立即开始工作。 我还在一些设备上添加了代码、用于检测2分钟后是否未收到任何数据、然后重新初始化所有 WiFi 配置、这似乎也使其再次正常工作。 但是、即使在没有此代码的器件上、似乎有时它们最终会自行开始工作(可能为10分钟、可能为1小时...)。
一些附加说明:
- CC3220SF 模块以"会话"模式运行。 它们连接到我的"服务器"应用程序也连接到的接入点。
- 所有 CC3220套接字操作均配置为非阻塞。
- 我的 CC3220应用在没有任何 RTOS 的情况下运行。
- 我将在 每个 CC3220模块上安装服务包 sp_3.5.0.0_2.0.0.0_2.2.0.5.bin。
- 我看到一些帖子表明调用 sl_Recvfrom (..)是个问题 频率过高、但这似乎是通过使用稍后的 SDK v1.50来解决的、我想我已经使用了该版本。
是否有任何关于尝试什么的建议?
谢谢、
AJ