欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > linux获取串口号

linux获取串口号

时间:2019-05-13 12:43

请问程序中linux如何获取可用的串口列表

1.查看.是否可用,口发送数据比如对com1口,echo lyjie126 > \\\/dev\\\/ttyS02.你要查看.串口名称使用 ls -l \\\/dev\\\/ttyS* 一般情况下串口称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;3.你要查看.串口驱动:cat \\\/proc\\\/tty\\\/drivers\\\/serial4.你要查看.串口设备:dmesg | grep ttyS*

linux下怎么检查串口号

查看是用,可以对串口发送数据比如对com1口,echo lyjie126 > \\\/dev\\\/ttyS0查看串口名用 ls -l \\\/dev\\\/ttyS* 一般情况下串口的名部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;查看串口驱动:cat \\\/proc\\\/tty\\\/drivers\\\/serial查看串口设备:dmesg | grep ttyS*

在linux系统下怎么读取串口服务器的实时数据

Linux串口读写:#include \\\/*标准输入输出定义*\\\/#include \\\/*标准函数库定义*\\\/#include \\\/*Unix 标准函数定义*\\\/#include #include #include string.h#include \\\/*文件控制定义*\\\/#include \\\/*PPSIX 终端控制定义*\\\/#include \\\/*错误号定义*\\\/#define FALSE -1#define TRUE 0\\\/*********************************************************************\\\/int OpenDev(char *Dev){int fd = open( Dev, O_RDWR | O_NOCTTY ); \\\/\\\/| O_NOCTTY | O_NDELAYif (-1 == fd){perror(Can't Open Serial Port);return -1;}elsereturn fd;}\\\/***@brief 设置串口通信速率*@param fd 类型 int 打开串口的文件句柄*@param speed 类型 int 串口速度*@return void*\\\/int speed_arr[] = { B38400, B19200, B9600, B4800, B2400, B1200, B300,B38400, B19200, B9600, B4800, B2400, B1200, B300, };int name_arr[] = {38400, 19200, 9600, 4800, 2400, 1200, 300, 38400,19200, 9600, 4800, 2400, 1200, 300, };void set_speed(int fd, int speed){int i;int status;struct termios Opt;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(tcsetattr fd1);return;}tcflush(fd,TCIOFLUSH);}}}\\\/***@brief 设置串口数据位,停止位和效验位*@param fd 类型 int 打开的串口文件句柄*@param databits 类型 int 数据位 取值 为 7 或者8*@param stopbits 类型 int 停止位 取值为 1 或者2*@param parity 类型 int 效验类型 取值为N,E,O,,S*\\\/int set_Parity(int fd,int databits,int stopbits,int parity){struct termios options;options.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); \\\/*Input*\\\/options.c_oflag &= ~OPOST; \\\/*Output*\\\/if ( tcgetattr( fd,&options) != 0) {perror(SetupSerial 1);return(FALSE);}options.c_cflag &= ~CSIZE;switch (databits) \\\/*设置数据位数*\\\/{case 7:options.c_cflag |= CS7;break;case 8:options.c_cflag |= CS8;break;default:fprintf(stderr,Unsupported data size\\\/n); return (FALSE);}switch (parity){case 'n':case 'N':options.c_cflag &= ~PARENB; \\\/* Clear parity enable *\\\/options.c_iflag &= ~INPCK; \\\/* Enable parity checking *\\\/break;case 'o':case 'O':options.c_cflag |= (PARODD | PARENB); \\\/* 设置为奇效验*\\\/options.c_iflag |= INPCK; \\\/* Disnable parity checking *\\\/break;case 'e':case 'E':options.c_cflag |= PARENB; \\\/* Enable parity *\\\/options.c_cflag &= ~PARODD; \\\/* 转换为偶效验*\\\/options.c_iflag |= INPCK; \\\/* Disnable parity checking *\\\/break;case 'S':case 's': \\\/*as no parity*\\\/options.c_cflag &= ~PARENB;options.c_cflag &= ~CSTOPB;break;default:fprintf(stderr,Unsupported parity\\\/n);return (FALSE);}\\\/* 设置停止位*\\\/switch (stopbits){case 1:options.c_cflag &= ~CSTOPB;break;case 2:options.c_cflag |= CSTOPB;break;default:fprintf(stderr,Unsupported stop bits\\\/n);return (FALSE);}\\\/* Set input parity option *\\\/if (parity != 'n')options.c_iflag |= INPCK;tcflush(fd,TCIFLUSH);options.c_cc[VTIME] = 150; \\\/* 设置超时15 seconds*\\\/options.c_cc[VMIN] = 0; \\\/* Update the options and do it NOW *\\\/if (tcsetattr(fd,TCSANOW,&options) != 0){perror(SetupSerial 3);return (FALSE);}return (TRUE);}int main(int argc, char **argv){int fd;int nread;char buff[512];char *dev = \\\/dev\\\/ttyS0; \\\/\\\/串口二fd = OpenDev(dev);set_speed(fd,4800);if (set_Parity(fd,8,1,'N') == FALSE){printf(Set Parity Error\\\/n);exit (0);}int i;i = getchar();if ( i == '1'){while (1) \\\/\\\/循环读取数据{while((nread = read(fd, buff, 512))>0){printf(\\\/nLen %d\\\/n,nread);buff[nread+1] = '\\\/0';printf( \\\/n%s, buff);}}}if ( i == '2'){while (1) \\\/\\\/循环写入数据{gets(buff);printf(------buff--->%s<--------\\\/n,buff);int num = strlen(buff);printf(--------num---->%d<--------------\\\/n,num);if ( num > 0){printf(Wirte num not NULL.\\\/r\\\/n);nread = write(fd, buff ,num);if(nread == -1){printf(Wirte sbuf error.\\\/n);}printf(--nread---->%d<-----------\\\/n,nread);}}}close(fd);\\\/\\\/exit (0);}

linux下当usb口插入时如何得到串口转usb的设备名称?

linux端是串口的话就没法看出来,因为串口设备文件是一直有的;如果是usb端的话到\\\/dev下观察 插入设备后增加的设备名称 就是你的usb设备 和上面所说的一直就是ttyUSBXX(usb设备号)。

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

1.使用ls -l ttyS*命令显示如下crw-rw----. 1 root dialout 4, 64 5月 17 02:24 \\\/dev\\\/ttyS0crw-rw----. 1 root dialout 4, 65 5月 17 02:24 \\\/dev\\\/ttyS1crw-rw----. 1 root dialout 4, 66 5月 17 02:24 \\\/dev\\\/ttyS2crw-rw----. 1 root dialout 4, 67 5月 17 02:24 \\\/dev\\\/ttyS3但你不知到哪个是真实的串口,虽然一般都是ttyS0,但也不敢妄然确定。

2.使用cat \\\/proc\\\/tty\\\/driver\\\/serialserinfo:1.0 driver revision:0: uart:16550A port:000003F8 irq:4 tx:0 rx:01: uart:unknown port:000002F8 irq:32: uart:unknown port:000003E8 irq:43: uart:unknown port:000002E8 irq:3我们发现串口0的uart值时16550A,tx值为0,rx值也为0,因此我们断定本机只有一个串口,是串口0,即ttyS03.也可以用dmesg | grep ttyS*,但这个不是很好用,当然你可以自己使用正则法则取找到。

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

linux 下如何查看 串口3 ,4 的irq 中断号

第一个是 \\\/dev\\\/ttyS0查看命令setserial \\\/dev\\\/ttyS2setserial \\\/dev\\\/ttyS3

如何查看linux下串口是否可用

串口名称等

cat \\\/proc\\\/tty\\\/driver\\\/serialls -l ls -l \\\/dev\\\/ttyS?通过发送数据测试是否可用:date > \\\/dev\\\/ttyS0

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片