Linux命令连接串口 linux怎么连接串口

Ubuntu linux中怎么查看自己的串口连接情况我们在windows中查找自己的开发板与电脑的连接的COM口时,可以通过查找设备管理器来看,但是换到咱们的linux系统中就不能这样做了,下面说一下在linux中是怎么查看COM口信息的 。
首先 , 将我的mini2440开发板通过USB转232串口线与PC机连接,这时候咱们的linux系统自动安转了驱动程序,可以使用命令:dmesg 来查看安装驱动的信息,如下图
从上图可以看出咱们的串口设备是0,
你也可以使用命令: ls -l /dev/ttyUSB*来查看相关的信息,如下图
至此,我们已经顺利的将串口连接到Ubuntu系统上了,也查看到自己开发板连接的是USB转串口设备/dev/ttyUSB0 , 如果是普通的串口设备会是/dev/ttyS*.
我们在配置minicom的时候会用到:
Linux串口连接ttyS0、ttyS1是什么意思?这是通信串口名称 。
在Linux环境下,串口名从ttyS0开始依次是ttyS1、ttyS2等 。在本程序中,使用ttyS0作为通信串口 。在打开ttyS0的时候 , 选项 O_NOCTTY 表示不能把本串口当成控制终端,否则用户的键盘输入信息将影响程序的执行; O_NDELAY表示打开串口的时候,程序并不关心另一端 的串口是否在使用中 。在Linux中,打开串口设备和打开普通文件一样,使用的是open()系统调用 。比如我么打开串口设备1也就是COM1,只需要:
fd = open("/dev/ttyS0", O_RDWR | O_NOCTTY | O_NDELAY );
打开的串口设备有很多设置选项 。本文中使用int setup_com(int fd)设置 。在系统头文件中 定义了终端控制结构struct termios,tcgetattr()和tcsetattr()两个系统函数获得和设置这些属性 。结构 struct termios中的域描述的主要属性包括:
c_cflag : 控制选项
c_lflag : 线选项
c_iflag : 输入选项
c_oflag :输出选项
c_cc :控制字符
c_ispeed :输入数据波特率
c_ospeed :输出数据波特率
如果要设置某个选项,那么就使用"|=“运算,如果关闭某个选项就使用”=“和”~"运算 。本文使用的各个选项的意义定义如下:
c_cflag:
CLOCAL 本地模式,不改变端口的所有者
CREAD 表示使能数据接收器
PARENB 表示偶校验
PARODD 表示奇校验
CSTOPB 使用两个停止位
CSIZE 对数据的bit使用掩码
CS8 数据宽度是8bit
c_lflag:
ICANON 使能规范输入 , 否则使用原始数据(本文使用)
ECHO 回送(echo)输入数据
ECHOE 回送擦除字符
ISIG 使能SIGINTR,SIGSUSP,SIGDSUSP和 SIGQUIT 信号
c_iflag:
IXON 使能输出软件控制
IXOFF 使能输入软件控制
IXANY 允许任何字符再次开启数据流
INLCR 把字符NL(0A)映射到CR(0D)
IGNCR 忽略字符CR(0D)
ICRNL 把CR(0D)映射成字符NR(0A)
c_oflag: OPOST 输出后处理 , 如果不设置表示原始数据(本文使用原始数据)
c_cc[VMIN]: 最少可读数据
c_cc[VTIME]: 等待数据时间(10秒的倍数)
如何在linux上使用串口设备简单Linux命令连接串口的运行 dmesg 命令
$ dmesg | grep tty
输出:
[37.531286] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[37.531841] 00:0b: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[37.532138] 0000:04:00.3: ttyS1 at I/O 0x1020 (irq = 18) is a 16550A
setserial 命令
setserial 是一个程序用于设定并/或报告某个串口关联Linux命令连接串口的配置信息 。该信息包括串口用到的I/O 端口和中断号Linux命令连接串口,以及Break键是否应被解释为Secure Attention Key 等等 。仅仅是输出如下的命令:
$ setserial -g /dev/ttyS[0123]
输出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4

推荐阅读