GESHW 发表于 2009-12-8 11:54:31

51单片机如何接收GSM模块的返回指令?

我用了
AT+CMGS="手机号"
>信息内容

发送信息,返回的命令如下:

+CMT: "8613956997308",,"09/12/08,10:33:30+32"
HELLO

实际上我就想检测到信息内容 HELLO 就可以了,这个返回了两行信息,怎么用单片机串口接收啊?也可以全部读取吗?

zc3909 发表于 2009-12-8 12:40:47

如果ram够用,最好全部读取

GESHW 发表于 2009-12-8 13:49:27

RAM可能是够用的,我是不知道这个返回的字符一共是多少个,如果我定义一个数组,接收这些返回的字符,那应该定义多长的数组?比如那个日期09/12/08,这个是占5个还是8个?

Appcat 发表于 2009-12-8 14:05:52

开串口缓冲区,中断接收,然后一次读取一行,遇到0X0D0X0A结束
使用子串匹配的办法寻找你感兴趣的字符串
就这么简单

GESHW 发表于 2009-12-8 14:15:08

谢谢, Appcat 苹果猫和2楼 zc3909

Appcat 苹果猫,你有没有接收模块返回的字符的C函数,这个好像不太好写,55,我是菜鸟

zc3909 发表于 2009-12-8 14:23:05

也可以计时,串口连续100mS没有收到新数据,再处理

Appcat 发表于 2009-12-8 14:42:23

【4楼】不是已经找到了我那个帖子里边的代码吗?我就是那样实现的,readln函数。

【5楼】延时是一个不错的办法,实现简单,对时间要求不是很严格的,不要支持多波特率的都可以用,楼主可以试试。

GESHW 发表于 2009-12-8 14:46:52

恩 好的 谢谢两位
页: [1]
查看完整版本: 51单片机如何接收GSM模块的返回指令?