|
本帖最后由 fanyundemuzi 于 2013-1-30 12:47 编辑
亚瑟王 发表于 2013-1-28 09:33
亲,
首先要确认你所使用的GPRS模块需要的是几线串口(通用的有3线或5线);
然后确认你的GPRS模块的2、3 ...
请问需不需要将串口由调试模式调为普通模式?
我现在遇到一个奇怪到不能奇怪的事情了:程序(主要实现往串口发送AT命令,GPRS模块会发送短信)虚拟机linux2.6上能实现GPRS模块发送短信,但是程序放到TQ2440开发板上就出现很多奇怪的事情了,首先串口设备tq2440_serial0是没错的,但由于GPRS模块的串口是交叉,开发板的串口是直通,我已经把2,3线交叉接上了(用了直通串口线、交叉串口线连接开发板和GPRS模块都还是没办法实现发短信):
fd = open("/dev/tq2440_serial0", O_RDWR|O_NOCTTY|O_NDELAY))
memset(buf, 0, sizeof(buf)); //AT+CMGF=0 pdu模式中文短信发送
strcpy(buf, "AT+CMGF=0\r");
nwrite = write(fd, buf, strlen(buf));
printf ("nwrite = %d, %s\n", nwrite, buf);
memset(reply, 0, sizeof(reply));
sleep(1);
nread = read(fd, reply, sizeof(reply));
printf ("nread = %d, %s\n", nread, reply);
在虚拟机上linux上运行时显示:
nwrite=10,AT+CMGF=0
nread=16,AT+CMGF=0
OK
而在开发板上运行超级终端显示(用网线talnet登陆操作)
nwrite=10,AT+CMGF=0
nread=-1
我接着把开发板串口发回来的信息在串口助手上看,显示的AT信息是没问题
现在到了山穷水尽的地步了,能想到的调试方法都试过了,
跪求亚瑟王指导!!!!
|
|