完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
问题描述: 工作流程是:板子上电初始化连接wifi开服务模式分配端口 -> TCP调试软件通过wifi连接到板子 -> 每隔100ms发送一次查询指令:A0 02 D1 0D 0A -> 正常解析数据后返回指令:A0 0B D1 00 00 01 0D 0A。 问题点:在出现一次 [44598] D/at.clnt: execute command (AT+CIPSEND=0,8) timeout (5000 ticks)! 之后队列里所有待发送的数据都是隔一条才能正常发送一条。 可能出现问题的代码段: 在上次提问之后参考ESP8266的例程更改了发送函数 代码如下: `rt_err_t send_data_to_client(uint8_t client_num, const char *buff, /* 创建响应结构体,设置最大支持响应数据长度为 512 字节,响应数据行数无限制,超时时间为 5 秒 / 分析来看是在执行at_exec_cmd(resp, “AT+CIPSEND=%d,%d”, client_num, cur_pkt_size) 即 (AT+CIPSEND=0,8) 未正常接收到返回的”>”。 在出现该问题后我使用 at client 指令进入调试模式,发送AT+CIPSEND=0,8指令后返回非常迅速。 请教如何调试解决该问题。
|
|
相关推荐
2个回答
|
|
|
调试时发现未执行成功时的AT返回如下:
[D/AT] sendline: 0000-0020: 41 54 2B 43 49 50 53 45 4E 44 3D 30 2C 38 AT+CIPSEND=0,8 [D/AT] recvline: 0000-0020: 0D 0A .. [D/AT] recvline: 0000-0020: 62 75 73 79 20 73 2E 2E 2E 0D 0A busy s….. [D/AT] recvline: 0000-0020: 0D 0A .. [D/AT] recvline: 0000-0020: 53 45 4E 44 20 4F 4B 0D 0A |
|
|
|
|
|
问题已解决,主要问题就是使用ESP8266模块的时候发送频率不能太快,最好等待SEND OK之后再进行下次发送,我的调试结果来看比较合适的时间是50~100ms发送一帧数据。
总结下经验:在使用AT组件开发时添加 #define AT_PRINT_RAW_CMD 打印出来每次发送/接收的数据能比较方便的找到问题所在。 |
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1033 浏览 0 评论
2877 浏览 0 评论
图腾柱PFC无法上升至400V,且电感电流为正弦波形,但是幅值极小
9386 浏览 0 评论
飞凌嵌入式ElfBoard-Vim编辑器之静态链接和动态链接
2898 浏览 0 评论
使用 LinkBoy 将程序导出为 C 语言代码并烧录至 Arduino ESP32 开发板
2302 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 01:39 , Processed in 0.510718 second(s), Total 43, Slave 36 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2769