|  | 
| 本帖最后由 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信息是没问题
 现在到了山穷水尽的地步了,能想到的调试方法都试过了,
 跪求亚瑟王指导!!!!
 
 | 
 |