3G ttyUSB0转串口发短信问题

kunlunxue 2011-01-08 02:43:11
加精
我用的是ARM开发板,LINUX内核。用HUAWEI EM660的3G板子。在LINUX命令提示符下,用AT命令发短信一点问题都没有。成功返回OK等等。但是用程序自动发短信,就出问题,比如我发HELLO,
,等发完后,我为了验证发的是否成功,再读串口,READ,就出现了问题。返回的内容老包含刚发出去的内容,比如发了HELLO 后,READ 串口,返回HELLO OK .本来只返回OK的。不知什么原因呀?望大家帮忙解决?是串口设置问题?还是 缓冲问题?还是驱动问题?
有人说参考tip 源代码,我怎么在网上找不见呢?是在LINUX 内核中吗?
...全文
2770 82 打赏 收藏 转发到动态 举报
写回复
用AI写文章
82 条回复
切换为时间正序
请发表友善的回复…
发表回复
iHunks 2013-03-03
  • 打赏
  • 举报
回复
还没到这程度。。。唉。。
Cratrix 2013-02-20
  • 打赏
  • 举报
回复
我都看不明!新手呀
yuemalin3 2013-02-06
  • 打赏
  • 举报
回复
肯定要显示,那是远端给你的响应,你要是用这些响应来确定是否进入下一步!
y179737606 2012-03-09
  • 打赏
  • 举报
回复
高深啊,努力学习中
suckdick 2011-01-12
  • 打赏
  • 举报
回复
bu dong qing duoduo zhijiao
sijige 2011-01-12
  • 打赏
  • 举报
回复
http://www.vczx.com/forum/showthread.php?s=b4670801424914a13e94431d46e5a03c&threadid=1168
whatnamecaniuse 2011-01-12
  • 打赏
  • 举报
回复
显然是回显问题。

在打开串口后,立即发一个ATE0即可
zxc927266 2011-01-12
  • 打赏
  • 举报
回复
不错,不过有点难啊
guai520a 2011-01-11
  • 打赏
  • 举报
回复
感谢了 受用
fasgqewfdsfxd 2011-01-11
  • 打赏
  • 举报
回复
arm不错,不过有点难哈。
chenhaoowen 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 kunlunxue 的回复:]
我用的是ARM开发板,LINUX内核。用HUAWEI EM660的3G板子。在LINUX命令提示符下,用AT命令发短信一点问题都没有。成功返回OK等等。但是用程序自动发短信,就出问题,比如我发HELLO,
,等发完后,我为了验证发的xiexi是否成功,再读串口,READ,就出现了问题。返回的内容老包含刚发出去的内容,比如发了HELLO 后,READ 串口,返回HELLO OK .本来只返回OK的。不知什么……
[/Quote]谢谢楼主
michael655 2011-01-11
  • 打赏
  • 举报
回复
试了下,谢谢。
J_act 2011-01-11
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 kunlunxue 的回复:]

谢谢大家的回复。
1)关于延时
我都试过了,一个是延时,发完后,我都延时了两三秒钟,都不顶事。另外,接收缓冲与发送缓冲因该是独立的。
2)关于清空缓冲,我也试了。有程序为证。
write_len=write(fd,buf,strlen(buf));
if(write_len== -1)
{
fprintf(stderr, "Wirte AT+CMGF command……
[/Quote]

关闭回显是指:
发送AT,返回:OK。
如果不关的话:
发送AT,你在串口上读到的就是:AT<cr><cf>OK<cr><cf>


你可以在windows超级终端上测试一下看。
如果关闭回显的话你敲入的“AT”两个字是看不到的。
开启回显的时候才可以看到你输入的。
像这样:
AT
OK

“OK”两个字不管你开启还是关闭回显都会返回。
bbaw8825 2011-01-11
  • 打赏
  • 举报
回复
高手啊~!
手机写程序 2011-01-10
  • 打赏
  • 举报
回复
用示波器量信号吧。
hebutwcn 2011-01-10
  • 打赏
  • 举报
回复
高手
高手
沧海遗珠 2011-01-10
  • 打赏
  • 举报
回复
我用的是ARM开发板,LINUX内核。用HUAWEI EM660的3G板子。在LINUX命令提示符下,用AT命令发短信一点问题都没有。成功返回OK等等。但是用程序自动发短信,就出问题,比如我发HELLO,
,等发完后,我为了验证发的是否成功,再读串口,READ,就出现了问题。返回的内容老包含刚发出去的内容,比如发了HELLO 后,READ 串口,返回HELLO OK .本来只返回OK的。不知什么原因呀?望大家帮忙解决?是串口设置问题?还是 缓冲问题?还是驱动问题?
有人说参考tip 源代码,我怎么在网上找不见呢?是在LINUX 内核中吗?



对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:54

feiyinzilgd

(谭海燕 Linux)

等 级:
2
#1楼 得分:10回复于:2011-01-08 15:54:01
lll358 2011-01-10
  • 打赏
  • 举报
回复
不错 学习了 谢谢楼主
lagunakkkk 2011-01-10
  • 打赏
  • 举报
回复
。。。挺高深的。。实话 重新看了一次
lagunakkkk 2011-01-10
  • 打赏
  • 举报
回复
感谢回复一下,还真的要学习一下。~
加载更多回复(29)

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧