tarzar 发表于 2008-2-26 09:52:55

请教TC35I的AT指令的回车换行的判断方法?

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_219882.jpg

AT指令词法,响应好像结束都是回车换行,
但是在当发送信息收到的"> "就不是以回车换行结束了,我现在对接收猫发过来的数据,处理起来好像都很免强似的.想听听大家是怎么做的


我本来是想这样做:在接收中断一直接收且判断是不是回车换行,如果是回车换行且接收到的数据大4就为有效数据(包含回车换行),但是问题就来了,"> "不是以其结尾的.所以这种判断方法是不行的

后来又改成用定时判断:一但有接收到数据就起启定时500ms(9600bps,最大接收( (256字节*1000ms)/(9600/8)字节 = 213.4ms),等到500ms到了再跟据当前的AT指令来判断指令是否正确执行(设一个变量来标识当前的AT命是什么)

要是能用前者就可以提高单片机的运行效率,但并不是全部以回车换行结束
而后者方法可行,但是太浪漫时间了,实时性不高,优点是可以过虑掉三个字符的干拢.

以下蓝色文字由站长:armok 于:2008-02-26,10:17:27 加入。你的原标题:“<font color=black>用过西门子的TC35I进来一下” 不合符规定。请更改成能说明帖子大意的标题
试想一下,如果本论坛的帖子标题清一色的‘帮助!’,‘ADC求救!’等笼统的标题,你在阅读的过程中会造成许多麻烦。
所以本论坛规定:一定要起一个能说明帖子大意的标题。不允许“关于 AVR 的 ADC 使用!”这种笼统标题。作为标题,必须说明清楚:
 ①你是在请教问题,还是在介绍有关的知识?
 ②ADC的问题有许多,你是想说那方面的内容?
注意以上两点,标题应该改成如:“请教:ADC 可以不使用中断吗?”。
起一个能说明帖子大意的标题,除了减轻我们的帖子分类整理工作,还方便其它人阅读,节省大家的时间。
注:使用合格的标题,对你来说只是举手之劳,但却会为我们的管理工作提供很大的便利。谢谢你的支持。
./bbs_upload/files_6/armok01122228.gif

gxlujd 发表于 2008-2-26 11:19:17

我记得TC35可以设置响应符为数字的,比如原来返回OK的可以让它返回0,具体查查TC35指令手册。

Appcat 发表于 2008-2-26 11:19:40

没注意你说的现象,我印象中都是以回车换行结束的,就是0x0D 0x0A两个字符,处理起来也没什么问题啊。

tarzar 发表于 2008-2-26 13:54:23

gxlujd 彩虹,谢谢您的回答

你说的是不是这条件指令啊?

1http://cache.amobbs.com/bbs_upload782111/files_9/ourdev_219995.jpg

按上图说明默认为ATV1

那么它的格式应该就是
Information response: <CR><LF><text><CR><LF>            --->这应该是指tc35i应答的格式吧               
Long result code format: <CR><LF><verbose code><CR><LF>   --->长结果代码格式是TC35I发送的格式吗?



我的初始化代码是这样的
出厂默认设置:发送“AT&F0”
关闭自动回传命令:发送“ATE0”
设置波特率:发送“AT+IPR=9600”  从自动波特率设成固定为9600
设置支持字符格式:发送“AT+CSCS="GSM"” (我只用text格式)
设置短信的格式:发送“AT+CMGF=1”
设置短消息存储顺序:发送“AT^SSMSS=1”  //先存SIM卡再存手机存储器
设置短信息的存储及通知格式:发送“AT+CNMI=2,1”
设置本地短信中心号码:发送“AT+CSCA="+8613800595500"”


Appcat
也谢谢您,能不能把你的初始化TC35I的代码贴一下吗?

Appcat 发表于 2008-2-26 14:59:54

刚开始用用的是MC35i,GPRS传输用的,后来无铅化改用MC39i,没用过TC35i。印象中模块在
AT命令状态下应答都是以回车换行结束的。
我的初始化比较的简单,就两个:
ATZ0
ATE0
然后看
AT+CREG的网络注册情况
AT+CSQ的信号强度
一切OK了就拨号了。

后来为了降低成本,改用了华为的GTM900系列啦。

shandian 发表于 2008-2-26 15:08:51

http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=905352&bbs_page_no=5&bbs_id=1000
可以看看这里的程序。

wxh404 发表于 2008-5-29 09:05:32

可以的输入 ATV0正确返回“0”,可以代替“OK”

huang137 发表于 2009-12-2 09:38:30

Ring=strstr(RsBuf,"\r");
解释:
Ring=指针定义为:比如char *Ring

strstr=C字符串库函数,头文件string.h

RsBuf=字符串数组

\r=回车

这个语句的意思就是判断在RsBstr[]",....."Z这个数组里面有没有回车,有Ring返回回车的地址指针

这样够清除了把,在加个判断语句判断Ring是不是空,不为空那里字符串里面包含有回车了,并且指针指向回车地址

thinkker 发表于 2011-5-13 14:23:25

mark

comway 发表于 2011-5-14 08:03:23

我有扩展短信指令的w801g模块,发信息不用编程,你就不用考虑>了
at^sms=号码 "内容"
页: [1]
查看完整版本: 请教TC35I的AT指令的回车换行的判断方法?