请教:大伙用sim900或者esp8266等等,是怎样写的程序

2019-12-11 18:40发布

用AT指令,在发送了指令后要等待串口回复(比如:OK , GOT TO IP,等等),主要是这个等待的时候从几百到几十秒不等(网络回复时间慢),在等待的时候不可能就在那里等吧,搞了几种方式,感觉都不得要领,请问大伙是怎样搞的?
最好的是用小型的操作系统,因为用delay时会释放CPU给其它任务用。
用状态机的话,看着一堆case,头皮发麻。
啥都不用,直接等,只能在初始化的时候用,大循环用不了了。。
头疼。。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
28条回答
jssd
1楼-- · 2019-12-13 05:39
磊磊映画 发表于 2019-4-12 09:20
我记得服务器下发下来的指令是先缓存到通信模块里的, 每次需要主动去询问有没有消息下来。 ...

不是,我测试过。连接上服务器后,只要服务器发指令下来都收得到
jackjiao
2楼-- · 2019-12-13 05:42
哈哈 最近也在思考有没有类似的框架,逻辑或操作系统的
waterx3
3楼-- · 2019-12-13 10:48
freertos,stm串口使用DMA接收,空闲中断后数据扔进队列,后台任务处理数据。
磊磊映画
4楼-- · 2019-12-13 16:16
 精彩回答 2  元偷偷看……
磊磊映画
5楼-- · 2019-12-13 18:14
jackjiao 发表于 2019-4-12 10:01
哈哈 最近也在思考有没有类似的框架,逻辑或操作系统的

肯定有啊, AT指令主要是面向 PC 或者手机的,以前X86 和现在的安卓手机底层对这些通信模块的处理都是通过AT指令完成的,而且处理的非常稳定。  可以参考参考
磊磊映画
6楼-- · 2019-12-13 23:47
jssd 发表于 2019-4-12 10:00
不是,我测试过。连接上服务器后,只要服务器发指令下来都收得到

在协议层加上点处理,没有收到的数据就不会应答,让服务器重发  

一周热门 更多>