成都网站建设设计

将想法与焦点和您一起共享

linux命令有几个串口 linux串口发送数据命令

我的机器10个串口为什么在linux下只读两个

一般电脑只有2个串口,这个串口是板载的

创新互联建站成立与2013年,先为高密等服务建站,高密等地企业,进行企业商务咨询服务。为高密企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

而你说有10个,那可能是加装了插卡,现在的PCI转串口的卡有2串口和4串口之分,可能你加装了两块4串口的

当然还有一种程序就叫作虚拟串口,这种程序可以将USB的信号转为9针的串口信号或是将TCP协议转为232串口协议等

================================

工控机也不可能带有10个串口,而PC机的硬件里面自身就包含有2个串口,不管是不是能看的见这2个串口,所以在安装主板驱动时,这2个串口的驱动也被安装了

而其它的真实串口只能是加装的其它硬件,也就是说它不包含在你的电脑主板内。那么,它的驱动也就需要另外安装,大部分硬件都提供WINDOWS下的驱动安装,当前流行的就是XP系统

而你要在LINUX下使用这个硬件,就必须安装它的驱动

从你LINUX下看看硬件安装这儿吧,一定会有没安装的硬件

因为在你XP系统下或是安装了硬件的驱动也或是安装了虚拟串口的程序,而在LINUX下是不好找这种第三方驱动或是XP下的程序

不过LINUX自身好像就支持一个虚拟串口的程序,但我对LINUX了解不多,你可以自己找找看

linux如何查看哪个串口是真实串口,哪个串口

1.使用ls -l ttyS*命令显示如下

crw-rw----. 1 root dialout 4, 64 5月 17 02:24 /dev/ttyS0

crw-rw----. 1 root dialout 4, 65 5月 17 02:24 /dev/ttyS1

crw-rw----. 1 root dialout 4, 66 5月 17 02:24 /dev/ttyS2

crw-rw----. 1 root dialout 4, 67 5月 17 02:24 /dev/ttyS3

但你不知到哪个是真实的串口,虽然一般都是ttyS0,但也不敢妄然确定。

2.使用cat /proc/tty/driver/serial

serinfo:1.0 driver revision:

0: uart:16550A port:000003F8 irq:4 tx:0 rx:0

1: uart:unknown port:000002F8 irq:3

2: uart:unknown port:000003E8 irq:4

3: uart:unknown port:000002E8 irq:3

我们发现串口0的uart值时16550A,tx值为0,rx值也为0,因此我们断定本机只有一个串口,是串口0,即ttyS0

3.也可以用dmesg | grep ttyS*,但这个不是很好用,当然你可以自己使用正则法则取找到。

注意:还应查看是否有USB转串口,这个就很简单了:ls ttyUSB*,全部搞定。

查看linux下有多少可用的串口

在linux下查看串口可以用dmesg命令,参考下图: 上图中显示有两个串口,com1=0x3f8,com2=0x2f8 对应linux设备名称是ttyS0和ttyS1

linux下多串口的问题?

你open俩串口就OK了

至于转发数据的话 你read一个串口的数据在buf里 判断是否转发的 是的话就write buf到另一个串口里 很简单

int com0_fd = open(...) ;

int com1_fd = open(...) ;

tcgetattr() tcsetattr()....

.....

char buf[1024] ;

int length = read(com0_fd , buf , 1024) ;

判断是否转发的

是的话

write(com1_fd , buf, length);

当然 实际写的时候不是这么简单的流程 你可能给俩串口开俩线程 用锁来控制同步 通过全局数据结构体传递数据 串口的读函数可能会用到select等。

linux如何查看串口数量

dmidecode

dmesg

这两个可以列出系统的所有硬件信息.

如果这两条指令还看不到的那就只能打开机箱看了


分享名称:linux命令有几个串口 linux串口发送数据命令
标题URL:http://chengdu.cdxwcx.cn/article/dodcieh.html