linux串口调试窍门

jackxiang 2010-8-25 14:08 | |
把2个串口用交叉线连起来,假设两个串口分别为/dev/ttyS0和/dev/ttyS1,则可以直接在一个shell执行cat /dev/ttyS0,然后在另外一个shell 执行echo "test." >/dev/ttyS1,如果两个串口都是好的,则执行cat /dev/ttyS0会输出'test."如果不行,则可用cat /proc/interrupts看一下是否产生了中断,也可用setserial查看串口设置

简单总结一些串口程序调试的方法
最近在做一个串口发送数据的程序,有时候在办公室写有时候在家里。在办公室都是用串口连接两台电脑来调试串口程序。因为电脑多,用一根线连起来,这边发那边收,收的一边xp里用串口调试助手,很方便。回到家就不那么方便了,以前只有一台笔记本,现在多了一台台式机。虽然机器多了,但是有时候又忘记把串口线带回来,也不方便。我的程序是linux qtembedded的,到现在用过几种其他方法调试串口数据发送,简单总结一下。

1.单机的时候。用ln -s output /dev/ttySAC2 把程序里用到的串口ttySAC2连到一个文件,写数据进去之后,再用xxd打开这个文件,看16进制输出。缺点是看结果慢一拍,好处是最简单。xxd是 linux命令行查看16进制的工具,可以在vi中调用,也可以直接在命令行使用。

2.两台机器连接,台式机向笔记本发送数据。那时候还不知道下面说的qtserialport-terminal。笔记本打开一个终端,用cat /dev/ttyUSB0|xxd输出接收到的数据,也是可以直接看到16进制输出的。但是似乎默认有缓存,不是每次发的数据都能及时显示出来。

3. 就是今天发现的方法。在virtualbox里装的xp,设置里enable serialport,选择host device,/dev/ttyS0。但是启动后找不到串口,自己手动添加一个,IRQ4,3F8,出来的是com3。(显示com1被使用,不知道原因)然后打开串口调试助手,在宿主机linux里运行程序,发送数据到/dev/ttyS0;xp里用串口调试助手就可以收到数据了。这样也不需要连线,一台机器就可以调试,马上可以看到接受的数据,也是个不错的办法。

另外,在Archlinux的aur里,有一个用qt和 qextserialport和多线程方式实现的qtserialport- terminal,和串口助手差不多。但是没有16进制显示,默认不能用ttyUSB,但是可以选择很多种字符编码。等有时间了,可以改一下,加上16进制和usb串口。 看看这个程序的源码,就可以很容易写出多线程的串口程序。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/alexxu_118/archive/2010/06/29/5701409.aspx

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3436/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!

评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]