[程序源码] 单片机处理AT指令的方法与程序架构的搭建

[复制链接]
8395|10
 楼主| wrr360661326 发表于 2016-1-18 14:52 | 显示全部楼层 |阅读模式
    最近在接触GPRS的东西,最主要的就是想通过AT指令去操作GPRS模块。对于庞大的AT指令系统来说做的很可靠还很有挑战性的。我想首先是把自己需要的功能实现了,比如短信的,拨号的,TCPIP的,我现在就是用的TCPIP协议的指令。
(1)   数据接收:定时中断串口中断的方式,获取接收的报文,
(2)   发送数据,丢给串口中断去处理;
那么问题来了,AT指令有的是URC的,有的好长时间才能回复确认报文,还不能让这些数据有冲突,避免答非所问。
大家都是怎么处理的呢?
 楼主| wrr360661326 发表于 2016-1-18 14:53 | 显示全部楼层
初来乍到,大家多多交流啊~!
dirtwillfly 发表于 2016-1-18 14:56 | 显示全部楼层
对回复的内容根据关键词进行识别
 楼主| wrr360661326 发表于 2016-1-18 14:57 | 显示全部楼层
dirtwillfly 发表于 2016-1-18 14:56
对回复的内容根据关键词进行识别

那怎么知道是不是上次问的AT指令呢?
dirtwillfly 发表于 2016-1-18 14:59 | 显示全部楼层
wrr360661326 发表于 2016-1-18 14:57
那怎么知道是不是上次问的AT指令呢?

一般AT指令都是发送一条,回复一条
然后再进行下一个AT指令,很少有同时执行的指令。
我一般都用状态转移来发送和判断回复内容

评分

参与人数 1威望 +2 收起 理由
wrr360661326 + 2

查看全部评分

 楼主| wrr360661326 发表于 2016-1-18 15:00 | 显示全部楼层
我以前处理串口接收的数据的通信协议都是十六进制处理的,不是字符格式的,
现在这个AT指令接收的数据长度也不一定,都是字符串收发解析了。
huarana 发表于 2016-1-19 12:44 | 显示全部楼层
wrr360661326 发表于 2016-1-18 15:00
我以前处理串口接收的数据的通信协议都是十六进制处理的,不是字符格式的,
现在这个AT指令接收的数据长度 ...

长度不定也无所谓 ,字符串和16进制一样的没啥区别。

现在的问题是 有时候at指令发出去要好长时间才有回复,甚至出现各种问题 造成没有回复都有可能。要做到各种异常判断 就比较麻烦

评分

参与人数 1威望 +2 收起 理由
wrr360661326 + 2

查看全部评分

 楼主| wrr360661326 发表于 2016-1-19 15:52 | 显示全部楼层
huarana 发表于 2016-1-19 12:44
长度不定也无所谓 ,字符串和16进制一样的没啥区别。

现在的问题是 有时候at指令发出去要好长时间才有回 ...

设置一个超时的时间值,在定时中断完成就行了吧
穿拖鞋上篮 发表于 2018-4-9 13:46 | 显示全部楼层
没有回复的,是不是上个指令没发够,比如回车换行符"\r\n"有没有带上。

楼主最后用的成功的方案怎么样了?
sum123456 发表于 2018-4-11 14:43 | 显示全部楼层

现在这个AT指令接收的数据长度也不一定,都是字符串收发解析了。
bbstr 发表于 2018-4-13 21:11 来自手机 | 显示全部楼层
弄个状态机就好了,收到上一条反馈然后发下一条
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

23

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部