不用串口线调试串口通信程序

linux + QT Embedded写串口程序

在办公室都是用串口连接两台电脑来调试串口程序。因为电脑多,用一根线连起来,这边发那边收,收的一边xp里用串口调试助手,很方便。

有时候手头没有两台电脑可以连,或者两台中有一台笔记本,只有usb转串口线,我的笔记本里只有linux,反正怎么都不方便。于是,用过一些变通的方法:

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

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

 

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

(注:这个方法只在我家里的台式机上有效,另外几台主机都不行。查了半天资料,确定应该是我家里主机的主板,是从2手市场淘来的,可能串口有短接所致。正常的主板不会互通,要把串口的2,3引脚短接才可以实现本机自身的收发 )

 

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

你可能感兴趣的:(不用串口线调试串口通信程序)