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