问题终于解决了,踩了好多坑,下面是我总结的几点需要注意。
在用labview和GSM模块发短信时:
1.一定要注意延时问题,如果不加延时,GSM模块可能反应不过来,可能会导致前后发送的内容串在一起,就会不符合PDU的发送格式,可能你从程序框图上看,发送的格式顺序没有错,但实际上串口接收的内容已经乱七八糟,根本不可能发送成功。
2.要注意进制问题。使用AT命令的GSM一般是认16进制的。在串口助手中用CTRL+Z组合键可以发送短信,但是在labview中需要用转义字符来发送。CTRL+Z的ascll码是26,16进制就是1A。在labview中,需要把字符串调整为16进制显示,在然后再输入1A,这样串口才会识别这个发送命令。其他一些比如说回车是0D,空格是0A,这些都可以查到。还有要注意大小写,我的这个GSM只认大写1A,输入1a是不识别的。
3.最后一点一定要格外重视就是格式问题。回车换行、回车、空格不能随便乱用,用错一个就无法发送。我圈出的这个行结束常量,就是我之前忽视的,一直用的是回车常量,导致格式出错,一直无法发送。
问题终于解决了,踩了好多坑,下面是我总结的几点需要注意。
在用labview和GSM模块发短信时:
1.一定要注意延时问题,如果不加延时,GSM模块可能反应不过来,可能会导致前后发送的内容串在一起,就会不符合PDU的发送格式,可能你从程序框图上看,发送的格式顺序没有错,但实际上串口接收的内容已经乱七八糟,根本不可能发送成功。
2.要注意进制问题。使用AT命令的GSM一般是认16进制的。在串口助手中用CTRL+Z组合键可以发送短信,但是在labview中需要用转义字符来发送。CTRL+Z的ascll码是26,16进制就是1A。在labview中,需要把字符串调整为16进制显示,在然后再输入1A,这样串口才会识别这个发送命令。其他一些比如说回车是0D,空格是0A,这些都可以查到。还有要注意大小写,我的这个GSM只认大写1A,输入1a是不识别的。
3.最后一点一定要格外重视就是格式问题。回车换行、回车、空格不能随便乱用,用错一个就无法发送。我圈出的这个行结束常量,就是我之前忽视的,一直用的是回车常量,导致格式出错,一直无法发送。
举报