導航:首頁 > 操作系統 > 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查看串口數據相關的資料

熱點內容
linux下安裝vnc 瀏覽:656
微信圖片加密編輯可見 瀏覽:704
江恩操盤術pdf 瀏覽:929
本機構所屬的伺服器是什麼意思 瀏覽:783
c編譯器有哪些段 瀏覽:862
qq原創表情在哪個文件夾 瀏覽:624
點點賺app現在怎麼不能用了 瀏覽:363
網紅阿里程序員事件 瀏覽:203
演算法設計心得體會 瀏覽:116
java修改ip 瀏覽:150
php不需要編譯嗎 瀏覽:134
特斯拉新車如何用app控制 瀏覽:185
文檔拖到文件夾就不見了 瀏覽:814
標致308壓縮比是多少 瀏覽:749
伺服器和備用伺服器地址 瀏覽:927
程序員加班跳槽 瀏覽:706
青年員工在工作中如何化解壓力 瀏覽:604
包子解壓神器怎麼玩才爽 瀏覽:735
聯想加密電腦怎麼做系統 瀏覽:883
解壓最近的壓力 瀏覽:711