请教GSM模块接收短信
大家好!我现在在用GSM模块实现接改短信的功能,遇到这样一个问题,接收短信的时候要一直不断地查询是否有短信进来,但是我又要每隔一段时间用AT指令去查询一下场强。但如果正在查询场强的时候有短信进来应该怎么处理呢? 最近也在做这个。。关注下 不会冲突的,模块会自动处理,不过编程最好采用中断而非查询法。 就是啊,用中断处理啊 3# chunyang
以前我的做法是这样的,因为每条短信来了之后都会从串口读取到一个提示信息:+CMTI: "SM", 1,后面的1是索引号。所以我在主循环中就不断要查询有没有字符串:+CMTI: "SM",如果有则开始读取短信。读取完成后再查询下一个索引号是否存有短信,有就继续读取,没有的话就删除所有的短信返回继续查询提示信息:+CMTI: "SM"。现在的问题是,有可能我发送完查询场强的AT指令:AT+CSQ后,这里正好有一条短信进来,这样场强的返回信息和短信的提示信息就会混在一起,并且查询场强后我会把接收到的信息清除,这样就把这条短信漏掉了。不知道我这样设计有什么问题? 学习了AT指令最近正在猛干 这个主要是通讯口的数据流的处理问题,跟混不混在一起没多大的关系。每一组指令都是有分隔符隔开的,完全可以通过改进处理方法来解决这种两个数据包链接在一起送出的问题。 处理方式有问题。
串口缓存N多的数据,然后主循环不断的判断命令,这样就不会漏掉命令了。 模块会自动处理,不过编程最好采用中断而非查询法 中断方法即可,一般不会丢的,或者可以用RING引脚,有的模块有提示 请问各位都搞出来了吗,我在写命令AT+CNMI=2,1时,在上位机处理时并不能得到相应的提示,是上位机的原因还是指令不对?
求大神!!!!! 同问,我也碰到了这个问题
这是PC监听返回数据
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
+CMTI: "SM",1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1 我也遇到这个问题,这是监听结果,有收到短信提示,然后一闪而过
OK
AT+CMGR=1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1
OK
AT+CMGR=1
+CMTI: "SM",1
AT+CMGR=1
+CMGR: 0,,0
OK
AT+CMGD=1
AT+CMGD=1 我们的问题不是很一样,我发送的PDU短息可以被读出,但是我刚开始遇到的SIM内存已满,则无法存储信息。 如果我想用单片机提取出TC35中所储存的信息,该如何去做?即如何高效的判断出有新短息并且将编码读出显示在液晶中。求大神!!! 我的似乎是不能读出,还没找到原因,有时能正常读出
几率一半一半 14# liuming759
这个问题很好解决 谢谢 最近也在学 接收短信的时候要一直不断地查询是否有短信进来 不能正常读出和控制,用监听有短信提示进来,上面是这样显示吧
页:
[1]
2