导航:首页 > 操作系统 > linux查看串口数据

linux查看串口数据

发布时间:2023-04-30 06:46:34

⑴ Ubuntu linux中怎么查看自己的串口连接情况

通过USB转232串口线与PC机连接,这时候咱们的linux系统自动安转了驱动程序,可以使迅稿陪用命令:dmesg 查看安装驱动的信息。
使用命令 ls /dev/ttyUSB* 查看你敬伏的USB转串口的状态
使用命令 ls /dev/ttyS* 产亩蠢看串口(九针)的状态

⑵ linux查找串口

1、设备入口
可以查/dev/ttyS* 、/dev/*uart*(主设备号4或者204),第一串口一般为ttyS0、*uart0等
USB转串口设备一般为/dev/ttyUSB*(主设备号188),第一口一般为ttyUSB0
2、以上/dev下只是串口的入口,具体设备存在与否需要按关键字(ttyS、ttyUSB、uart)查询/proc/devices以确定。
3、串口为通讯端口,有多个串口设备时,要确定正在被连接的串口是哪个,需要检测一下,如:
cat /dev/ttyS0

⑶ linux 查看某个串口参数(波特率,数据位等)命令什么

用CAT命令查看

#cat /proc/tty/driver/serial
如果需要配置串口参数,minicom是个很好的选择。

一、安装
sudo apt-get install minicom

二、配置

配置minicom的参数
运行$ sudo minicom -s
便进入了minicom的配置界面,使用上下键选择Serial port setup,回车。此时光标在“change which setting”后面停留,它的上面有如下菜单:

只需输入上面对应的字母,就可以进如相应的菜单进行设置。设置完成,回车,光标会回到“change which setting”后面,如此重复。完成按回车返回主菜单即可。

⑷ 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*,全部搞定。

⑸ 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的时候会用到:http://blog.csdn.net/mybelief321/article/details/8987502

⑹ linux怎么读取串口数据

用echo可以,不过需要一个串口的软件,就跟win的超级终端一样,开启后连接串口,然后毁棚另一边发送数据,你这边就能显示出来,我记得好像纤悉则叫做陆李minicom

⑺ linux怎么读取串口数据

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<termios.h>
#include<errno.h>

#defineFALSE-1
#defineTRUE0

intspeed_arr[]={B38400,B19200,B9600,B4800,B2400,B1200,B300,B38400,B19200,B9600,B4800,B2400,B1200,B300,};
intname_arr[]={38400,19200,9600,4800,2400,1200,300,38400,19200,9600,4800,2400,族歼渣1200,300,};
voidset_speed(intfd,intspeed){
inti;
intstatus;
structtermiosOpt;
tcgetattr(fd,&Opt);
for(i=0;i<sizeof(speed_arr)/sizeof(int);i++){
if(speed==name_arr[i]){
tcflush(fd,TCIOFLUSH);
cfsetispeed(&Opt,speed_arr[i]);
cfsetospeed(&Opt,speed_arr[i]);
status=tcsetattr(fd,TCSANOW,&Opt);
if(status!=0){改慧
perror("tcsetattrfd1");
return;
}
tcflush(fd,TCIOFLUSH);
}
}
}

intset_Parity(intfd,intdatabits,intstopbits,intparity)
{
structtermiosoptions;
if(tcgetattr(fd,&options)!=0){
perror("SetupSerial1");
return(FALSE);
}
options.c_cflag&=~CSIZE;
switch(databits)
{
case7:
options.c_cflag|=CS7;
break;
case8:
options.c_cflag|=CS8;
break;
default:
fprintf(stderr,"Unsupporteddatasize ");return(FALSE);
}
switch(parity)
{
case'n':
case'N':
options.c_cflag&=~PARENB;/*Clearparityenable*/
options.c_iflag&=~INPCK;/*Enableparitychecking*/
break;
case'o':
case'O':
options.c_cflag|=(PARODD|PARENB);
options.c_iflag|=INPCK;/*Disnableparitychecking*/
break;
case'e':
case'E':
options.c_cflag|=PARENB;/*Enableparity*/
options.c_cflag&=~PARODD;
options.c_iflag|=INPCK;/*Disnableparitychecking*/
break;
case'S':
case's':/*asnoparity*/
options.c_cflag&=~PARENB;
options.c_cflag&=~CSTOPB;break;
default:
fprintf(stderr,"Unsupportedparity ");兆悄
return(FALSE);
}

switch(stopbits)
{
case1:
options.c_cflag&=~CSTOPB;
break;
case2:
options.c_cflag|=CSTOPB;
break;
default:
fprintf(stderr,"Unsupportedstopbits ");
return(FALSE);
}
/*Setinputparityoption*/
if(parity!='n')
options.c_iflag|=INPCK;
tcflush(fd,TCIFLUSH);
options.c_cc[VTIME]=150;
options.c_cc[VMIN]=0;/*UpdatetheoptionsanddoitNOW*/
if(tcsetattr(fd,TCSANOW,&options)!=0)
{
perror("SetupSerial3");
return(FALSE);
}
return(TRUE);
}

intmain()
{
printf("Thisprogramupdateslasttimeat%s%s ",__TIME__,__DATE__);
printf("STDIOCOM1 ");
intfd;
fd=open("/dev/ttyS0",O_RDWR);
if(fd==-1)
{
perror("serialporterror ");
}
else
{
printf("open");
printf("%s",ttyname(fd));
printf("succesfully ");
}

set_speed(fd,115200);
if(set_Parity(fd,8,1,'N')==FALSE){
printf("SetParityError ");
exit(0);
}
charbuf[]="fe55aa07bc010203040506073d";
write(fd,&buf,26);
charbuff[512];
intnread;
while(1)
{
if((nread=read(fd,buff,512))>0)
{
printf(" Len:%d ",nread);
buff[nread+1]='';
printf("%s",buff);
}
}
close(fd);
return0;
}

⑻ 如何在Linux检查并使用串口

linux 提供了各种工具, Linux 使用 ttySx 作为一个串口设备的名称。例如,COM1 (DOS/Windows 名字) 是 ttyS0, COM2 是 ttyS1 等等。
任务: 显示检测到的系统串口支持
简单的运行 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 是一个程序用于设定并/或报告某个串口关联的配置信息。该信息包括串口用到的I/O 端口和中断号,以及Break键是否应被解释为Secure Attention Key 等等。 仅仅是输出如下的命令:
$ setserial -g /dev/ttyS[0123]
输出:
/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
/dev/ttyS1, UART: 16550A, Port: 0x1020, IRQ: 18
/dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4
/dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3

带-g选项的setserial帮助找到你的Linux板子上的物理串口。
Linux 串口控制台程序
一旦串口被确定了,你就能使用许多的工具来配置Linux板子:
minicom- 用于控制modem和连接到mp 设备的最好的串口通信程序。
wvidial or other GUI dial up networking program - 一个内建智能PPP 拨号器。
getty / agetty - agetty 打开一个 tty 端口, 提示登录名称并调用 /bin/login 命令。
grub / lilo configuration - 配置串口为系统控制台。

⑼ 如何查看linux串口cts

在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)设置。在系统头文件<termios.h>中 定义了终端控制结构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秒的倍数) 根据以上设置的定义,串口端口设置函数setup_com()定义如下: int setup_com(int fd){ struct termios options; tcgetattr(fd, &options); /* Set the baud rates to 38400...*/ cfsetispeed(&options, B38400); cfsetospeed(&options, B38400); /* Enable the receiver and set local mode...*/ options.c_cflag |= (CLOCAL | CREAD); /* Set c_cflag options.*/ options.c_cflag |= PARENB; options.c_cflag &= ~PARODD; options.c_cflag &= ~CSTOPB; options.c_cflag &= ~CSIZE; options.c_cflag |= CS8; /* Set c_iflag input options */ options.c_iflag &=~(IXON | IXOFF | IXANY); options.c_iflag &=~(INLCR | IGNCR | ICRNL); options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); /* Set c_oflag output options */ options.c_oflag &= ~OPOST; /* Set the timeout options */ options.c_cc[VMIN] = 0; options.c_cc[VTIME] = 10; tcsetattr(fd, TCSANOW, &options); return 1; } 6.7.2 设置串口通信参数 串口通信参数指的是波特率、数据位、奇偶校验位和停止位。对串口实现控制的时候同样要用到termio结构体。下面将结合具体的代码说明如何设置这些参数。 1.波特率设置 获得端口波特率信息是通过cfgetispeed函数和cfgetospeed函数来实现的。cfgetispeed函数用于获得结构体 termios_p中的输入波特率信息,而cfgetospeed函数用于获得结构体termios_p 中的输出波特率信息。这两个函数的具体信息如表 6.9所示。 表6.9 cfgetispeed函数和cfgetospeed函数 头文件 <termios.h> <unistd.h> 函数形式 speed_t cfgetispeed(const struct termios *termios_p); speed_t cfgetospeed(const struct termios *termios_p); 返回值 成功 失败 是否设置errno 返回termios_p结构中的输入/输出端口的波特率 ?1 是 cfsetispeed函数和cfsetospeed函数用于设置端口的输入/输出波特率。一般情况下,输入和输出波特率是相等的。cfsetispeed函数和cfsetospeed函数的函数声明信息如表6.10所示。 表6.10 cfsetispeed函数和cfsetospeed函数 头文件 <termios.h> <unistd.h> 函数形式 int cfsetispeed(struct termios *termios_p, speed_t speed); int cfsetospeed(struct termios *termios_p, speed_t speed); 返回值 成功 失败 是否设置errno 返回termios_p结构中的输入/输出端口的波特率 ?1 是 cfsetispeed函数和cfsetospeed函数会修改结构体termios_p中的波特率信息,其中参数speed可以使用表6.11中所列出的宏。 表6.11 speed参数常用波特率信息 宏 定 义 波特率(单位:bit/s) 宏 定 义 波特率(单位:bit/s) B0 0 B1800 1800 B50 50 B2400 2400 B75 75 B4800 4800 B110 110 B9600 9600 B134 134 B19200 19200 B150 150 B38400 38400 B200 200 B57600 57600 B300 300

阅读全文

与linux查看串口数据相关的资料

热点内容
zip内存压缩 浏览:311
阿里云99元服务器不可以退款 浏览:337
linux下安装vnc 浏览:656
微信图片加密编辑可见 浏览:704
江恩操盘术pdf 浏览:929
本机构所属的服务器是什么意思 浏览:783
c编译器有哪些段 浏览:862
qq原创表情在哪个文件夹 浏览:624
点点赚app现在怎么不能用了 浏览:363
网红阿里程序员事件 浏览:203
算法设计心得体会 浏览:117
java修改ip 浏览:151
php不需要编译吗 浏览:136
特斯拉新车如何用app控制 浏览:187
文档拖到文件夹就不见了 浏览:815
标致308压缩比是多少 浏览:751
服务器和备用服务器地址 浏览:928
程序员加班跳槽 浏览:708
青年员工在工作中如何化解压力 浏览:604
包子解压神器怎么玩才爽 浏览:735