完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3个回答
|
|
发送完成之后,会对收到的内容进行解析,解析之后接种缓冲区中收到的内容就被读出来了。
在都执行完或者出错会释放 resp 的空间 __exit: if (result != RT_EOK) { /* power off the ec200x device */ ec200x_power_off(device); rt_thread_mdelay(3000); LOG_I("%s device initialize retry...", device->name); } } if (resp) { at_delete_resp(resp); } |
|
|
|
|
|
AT_SEND_CMD 的宏定义如下:
#define AT_SEND_CMD(client, resp, resp_line, timeout, cmd) do { (resp) = at_resp_set_info((resp), 128, (resp_line), rt_tick_from_millisecond(timeout)); if (at_obj_exec_cmd((client), (resp), (cmd)) < 0) { result = -RT_ERROR; goto __exit; } } while(0) 在执行 at_obj_exec_cmd() 的时候会把响应的 AT 执行发送出去,然后接收解析是一个单独的线程, 接收解析线程的入口函数是 client_parser 在这个解析线程里面会按照行(rn结束符)读取分析收到 的内容,所以每次发送一个指令就会去解析一条。接收线程会不停的读取解析收到的 AT 指令响应数据, 正常情况下就是发一条,然后收到响应数据,然后解析,解析正确执行下一条 AT 指令。 发送的时候一般都设置有超时时间,超时未解析正确就重发或者执行超时的逻辑。因为解析和发送是两个 线程,接收的时候会把模组的应答数据都存起来,然后一条一条去解析,不过正常情况下发送完只有马上 就能收到并解析应答数据,也就是发一条收一条,解析一条清除一条。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
788 浏览 0 评论
4271 浏览 0 评论
如何使用python调起UDE STK5.2进行下载自动化下载呢?
2529 浏览 0 评论
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2929 浏览 0 评论
获奖公布!2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
31479 浏览 11 评论
72933 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 21:35 , Processed in 0.570184 second(s), Total 78, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号