今天发送一组数据,发现数据每次都是只发送到一半,后面的数据都没有了,检查了一下发送出去的数据,和要待发的数据在哪个地方断开,发现是在0x19和0x1A处断开,所以0x19和0x1A是比较特殊的数值,经过比较,发现是0x1A导致的后面的数据丢失,0x1A 刚好是发送控制符,也就是数组中的0x1A导致了数据的提前发送,后面的数据就没发出去。去掉0x1A后,发现问题换成另一个问题,那就是,数据根本就没有发出去,后来了解得知,是0x1B的问题,0x1B刚好是模块的“退出”控制符,所以模块在接收到0x1B时,模块退出发送状态,导致数据无法发送出去。

   以前没有发现这个问题,是因为以前测试用的事变动的数据,数据一直在变动,所以导致一两条数据没有发出去,我们察觉不出来。

有人有相似的经验:

http://www.dzsc.com/dzbbs/20061024/200765212280605.html

 

SIM908解决方式很简单,无需上面连接提到的方法,只需利用AT+CIPSEND 的length参数,控制发送的长度即可

,使用length 参数 还看免去 ctrl+z 这一步,非常方便。UESTC LCX 2012.3.25

 

AT+CIPSEND=length

例如:

AT+CIPSEND=9

AT+CIPSEND=09

AT+CIPSEND=009

以上等效。