这次弄串口通信的一个模块。发现总是乱码,不过minicom则正常。当时采用的方案是使用 termios 来解决这个问题,由于用该接口必须使用 read 及 write 来实现操作,相当麻烦。当时还自己实现了一个串口操作的类以方便操作。
做完这些之后,发现还是经常乱码。后查看了下设备的串口支持特性。该设备是 9600bps,但可自动识别速度并提高速率。还支持相当多的特性。所以,乱码应该跟速率设置没有关系。而在程序中,没有发现流量控制的方法。当时找的一个硬件流量控制的也不可用。最终,经过一番搜索。最终的方法竟然异常简单。在命令行下运行“stty crtscts < /dev/ttyS1”即可。我用的是USB转串口设备,所以是“stty crtscts < /dev/ttyUSB0”。就可以进行硬件流量控制了……我的设备支持硬件流量控制。之后就使用普通的文件读写的方法进行操作。非常简单。注:应该使用两个设备,一个用ifstream定义为 tin,另一个用ofstream 定义成 tout或是类似的名字。然后使用相应的函数进行操作即可。可把它当成标准输入输出端口进行操作。再就是,还有个设置的工具:setserial。这个据说是用来设置波特率以及校验什么的。有兴趣的可以试一试。我的用不到。从这样看来,linux下基本可以将串口设置好后再作为文件进行操作。完全可以不用串口类。但高级应用估计还是可以用到的。


再战边缘 于 2007-11-10 12:00:02发表:
楼主好强啊