完善资料让更多小伙伴认识你,还能领取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 指令。 发送的时候一般都设置有超时时间,超时未解析正确就重发或者执行超时的逻辑。因为解析和发送是两个 线程,接收的时候会把模组的应答数据都存起来,然后一条一条去解析,不过正常情况下发送完只有马上 就能收到并解析应答数据,也就是发一条收一条,解析一条清除一条。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式-ELFBOARD 常用的USB接口及其不同版本介绍第1期
839 浏览 0 评论
【Vision Board创客营连载体验】RA8D1-Vision Board上OSPI-Flash实践
1328 浏览 0 评论
I.MX6ULL-飞凌 ElfBoard ELF1板卡- 应用层更改引脚复用的方法
3599 浏览 0 评论
1720 浏览 0 评论
【英飞凌PSoC 6 RTT开发板试用】串口测试标准输入输出重定向
1239 浏览 0 评论
60326 浏览 21 评论
289156 浏览 79 评论
13708 浏览 52 评论
16507 浏览 55 评论
54618 浏览 31 评论
28331 浏览 27 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-6-29 19:28 , Processed in 0.706656 second(s), Total 75, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号