天嵌 ARM开发社区

 找回密码
 注册
查看: 9052|回复: 24

TQ2440 GPRS模块连接发送短信问题,急急急!!!!

[复制链接]
fanyundemuzi 发表于 2013-1-26 16:23:50 | 显示全部楼层 |阅读模式
大大神们,我有个问题请教下,目前我已经在虚拟机linux成功编译一个程序:通过串口发送到GPRS模块上发送短信(GPRS模块自带单片机MCU,直接接收串口发过来的指令就能发短信),但将程序交叉编译(arm-linux-gcc)下载到tq2440上就发不了了,显示提示的信息与虚拟机上的都一样,但就是发不了短信,gprs模块与TQ2440也是串口连接,交叉编译后的程序是选择tq2440_serial0(也换过很多其他设备文件试过了,应该是tq2440_serial0),会不会是串口线问题????因为我之前只能用配送的串口线才能连接超级终端,其他线不能,而配送那条串口线又不能连接GPRS模块,因为要求一个插口一个接口的串口,配送那条是两个接口的串口线。还是要将调试的串口调回普通串口?????
有什么办法解决啊??

亚瑟王 发表于 2013-1-28 09:33:36 | 显示全部楼层

回帖奖励 +2

亲,
首先要确认你所使用的GPRS模块需要的是几线串口(通用的有3线或5线);
然后确认你的GPRS模块的2、3脚的点定义,如果是使用直连串口线和PC链接的,那么它和TQ2440开发板连接时请使用交叉串口线(即2、3脚交叉);如果是使用交叉串口线和PC连接的,那么它和TQ2440开发板连接请使用直连串口线。
 楼主| fanyundemuzi 发表于 2013-1-29 23:49:17 | 显示全部楼层
本帖最后由 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信息是没问题
现在到了山穷水尽的地步了,能想到的调试方法都试过了,
跪求亚瑟王指导!!!!
 楼主| fanyundemuzi 发表于 2013-1-30 00:42:55 | 显示全部楼层
亚瑟王 发表于 2013-1-28 09:33
亲,
首先要确认你所使用的GPRS模块需要的是几线串口(通用的有3线或5线);
然后确认你的GPRS模块的2、3 ...


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
亚瑟王 发表于 2013-1-30 10:22:42 | 显示全部楼层
fanyundemuzi 发表于 2013-1-30 00:42

亲,根据你的截图你的GPRS要和开发板的DB9连接,你需要用直连串口线。
你的代码需要调用的设备是/dev/tq2440_serial0,而不是那个usb设备。
 楼主| fanyundemuzi 发表于 2013-1-30 12:47:05 | 显示全部楼层
亚瑟王 发表于 2013-1-30 10:22
亲,根据你的截图你的GPRS要和开发板的DB9连接,你需要用直连串口线。
你的代码需要调用的设备是/dev/tq ...

那个/dev/usbdev1.1打错了,这是后来改用USB转串口连接模块调试改的,之前一直是用DB9连接模块,设备名也是对应上tq2440_serial0,无误,但不知道什么问题就是发送不了短信,开发板能通过串口发送AT指令,但就是发送不了进去模块里面,求指导啊啊:Q
 楼主| fanyundemuzi 发表于 2013-1-30 12:48:53 | 显示全部楼层
亚瑟王 发表于 2013-1-30 10:22
亲,根据你的截图你的GPRS要和开发板的DB9连接,你需要用直连串口线。
你的代码需要调用的设备是/dev/tq ...

会不会开发板串口有问题啊,还是串口设置有问题?默认设置是调试模式?需要调普通模式?这个不是很懂,求亚瑟王指导啊
亚瑟王 发表于 2013-1-30 15:26:22 | 显示全部楼层
fanyundemuzi 发表于 2013-1-30 12:48
会不会开发板串口有问题啊,还是串口设置有问题?默认设置是调试模式?需要调普通模式?这个不是很懂,求 ...

这里有这样一个问题,tq2440_serial0这个设备用于了串口控制台(可能会导致冲突),我就不清楚你是否将这个串口控制台换成别的串口?
vvb9137 发表于 2013-1-31 21:31:50 | 显示全部楼层
1.你可以将开发板串口连到电脑,看看开发板输出是否正确。
2.根据你的截图,两个设备要用交叉线连接(开发板2号针是发射端,而GPRS 3号针是接收端)。换句话说就是2-3、3-2相接。
 楼主| fanyundemuzi 发表于 2013-2-1 09:30:22 | 显示全部楼层
亚瑟王 发表于 2013-1-30 15:26
这里有这样一个问题,tq2440_serial0这个设备用于了串口控制台(可能会导致冲突),我就不清楚你是否将这 ...

我用一个TTL串口拓展模块,问题立马解决了,TQ2440开发板原本的串口的确有问题(直通交叉的串口线都试过都不行)
亚瑟王 发表于 2013-2-1 12:41:16 | 显示全部楼层
fanyundemuzi 发表于 2013-2-1 09:30
我用一个TTL串口拓展模块,问题立马解决了,TQ2440开发板原本的串口的确有问题(直通交叉的串口线都试过都 ...

原因在8楼我已经贴出来。
翰海*星云 发表于 2013-4-28 23:11:24 | 显示全部楼层
亚瑟王 发表于 2013-2-1 12:41
原因在8楼我已经贴出来。

亚瑟王大大,我想问问。我的gprs模块跟那个串口的扩展相接,内核也是支持了ppp协议之类的。但是使用pppd call gprs 命令进行拨号时,却是Illegal instruction。。。猜想是程序编译器的问题,准备明天试试。想问下还有其他的地方会出问题么。。
谢谢解答!劳动节快乐

(附件2440拨号用的pppdt和chat ,放到/sbin目录下。解压后的ppp放到/etc目录中,再修改gprs文件中对应的拨号用的串口名)
亚瑟王 发表于 2013-4-29 10:40:49 | 显示全部楼层
翰海*星云 发表于 2013-4-28 23:11
亚瑟王大大,我想问问。我的gprs模块跟那个串口的扩展相接,内核也是支持了ppp协议之类的。但是使用pppd  ...

是的,那个错误一般情况下是编译器引起的。
翰海*星云 发表于 2013-4-29 16:00:28 | 显示全部楼层
亚瑟王 发表于 2013-4-29 10:40
是的,那个错误一般情况下是编译器引起的。

老大,那个Illegal instruction 确实是编译器的问题。。。

   但现在又有新问题了:[root@EmbedSky /]# pppd call gprs
/usr/bin/chat: invalid option -- 'f'
BusyBox v1.16.0 (2010-04-17 19:14:08 CST) multi-call binary.

Usage: chat EXPECT [SEND [EXPECT [SEND...]]]

Useful for interacting with a modem connected to stdin/stdout.
A script consists of one or more "expect-send" pairs of strings,
each pair is a pair of arguments. Example:
chat '' ATZ OK ATD123456 CONNECT '' ogin: pppuser word: ppppass '~'

Script /usr/bin/chat -s -v -f /etc/ppp/peers/gprs-connect-chat finished (pid 678), status = 0x2
Connect script failed
英文的看不懂哎,网上还没找到解决的方法,这个该怎么解决了。
翰海*星云 发表于 2013-4-29 17:02:06 | 显示全部楼层
亚瑟王 发表于 2013-4-29 10:40
是的,那个错误一般情况下是编译器引起的。

http://www.arm9home.net/read.php?tid=15310    友善论坛上也有人碰到这种情况。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-28 17:16 , Processed in 1.062500 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表