linux 串口配置 linux查看串口设备
大家好,今天小编来为大家解答以下的问题,关于linux 串口配置,linux查看串口设备这个很多人还不知道,现在让我们一起来看看吧!
配置Linux系统默认串口配置linux默认串口
Linux系统的默认串口配置是指让操作系统在第一次启动的时候,就把这个串口设备作为主要的终端设备,而不需要每次有新的串口设备插入时手动添加或配置。在Linux系统的默认串口配置中,一般的串口设备厂家都使用ttyS0这一参数来表示第一个串口。
配置Linux系统默认串口配置,可以通过编辑Linux系统的终端启动文件,设置Linux系统默认使用某个串口方式启动,而不用重新进行设备驱动配置。
要配置Linux系统默认串口配置,具体步骤如下:
1.打开终端,运行 sudo vi/etc/inittab.在/etc/inittab文件最后面添加下面行:
T0:23:respawn:/sbin/getty-L ttyS0 9600 vt100
2.运行sudo init q来重新载入 inittab文件(在此之前,必须保证ttyS0设备已经正常创建)。
3.设置完成后,在系统Reboot时,将自动使用此ttyS0设备进行系统启动。
配置Linux系统默认串口配置不仅可以使用ttyS0方式进行系统启动,还可以使用ttyS1等其他串口设备。例如要使用ttyS1设备进行启动,只需要将上面的/sbin/getty的第二个参数ttyS0改为ttyS1即可。另外,在Linux系统配置串口的时候,可以在/etc/init.d/boot.local脚本中体现,例如:
#vi/etc/init.d/boot.local
echo“config ttyS1 none”>/proc/sys/dev/serial/config
通过上面的配置,Linux系统就可以选择将ttyS1设为系统的默认控制台输出设备,以满足用户个性化需求,为使用者提供更好的操作体验。
Linux C 配置串口
配置串口需要包含头文件
其中最核心的配置结构体为:
如何获取该结构呢?我们操作串口跟操作文件一样,也是调用 open()函数来打开串口,
这样我们就能够得到一个文件描述符 fd,然后就可以调用 tcgetattr()函数来获取上述配置结构体了。
Linux串口默认的配置为:波特率 9600,数据位 8位,无奇偶校验,停止位 1位,无 CTS/RTS。
以下介绍一些常用的配置项:波特率、奇偶校验、数据位、停止位、硬件控制流。
相关接口:
Linux将串口的波特率分为了输入波特率和输出波特率,不过最常用的场景是将两者设置成一样。
cfgetispeed()函数获取输入波特率, cfgetospeed()函数获取输出波特率。 cfsetispeed()函数设置输入波特率, cfsetospeed()函数用于设置输出波特率,当然 cfsetspeed()函数扩展为同时设置输入和输出波特率。
上述接口中的 speed_t是一系列波特率的标志位,例如常用的 115200波特率就为 B115200,参考下述选项:
设置奇偶校验位可以通过修改 termios结构体中的 c_cflag成员来实现,若无校验,则将 PARENB位设为 0;若有校验,则 PARENB为 1。之后再根据 PARODD来区分奇偶校验, PARODD为 1表示奇校验, PARODD为 0表示偶校验。例如设置无奇偶校验位:
设置数据位可以通过修改 termios结构体中的 c_cflag成员来实现,CS5、CS6、CS7和 CS8分别代表数据位 5、6、7和 8。不过在设置数据位之前,需要先用 CSIZE来做屏蔽字段,清楚这几个标志位,例如设置数据位为 8位:
设置停止位可以通过修改 termios结构体中的 c_cflag成员来实现, CSTOPB位为 1表示 2位停止位, CSTOPB位为 0标志 1位停止位。例如设置停止位为 1位:
设置硬件控制流可以通过修改 termios结构体中的 c_cflag成员来实现, CRTSCTS为 1表示使用硬件控制流,为 0表示不使用硬件控制流。例如使能硬件控制流:
当然,最后还需要用 tcflush()抛弃存储在 fd里的未接收的数据。
再利用接口 tcsetattr()函数将配置信息写入文件描述符 fd:
这样整个串口最常用的用法就配置完成了。
具体的配置使用可以参考我的项目 HCI-Middleware里的 hci_transport_uart_linux.c文件。
参考:
linux内核串口配置linux内核串口
嵌入式linux系统的启动流程是什么样的?
1)初始化RAM因为Linux内核一般都会在RAM中运行,所以在调用Linux内核之前Bootloader必须设置和初始化RAM,为调用Linux内核做好准备。初始化RAM的任务包括设置CPU的控制寄存器参数,以便能正常使用RAM以及检测RAM大小等。
2)初始化串口端口在Linux的启动过程中有着非常重要的作用,它是Linux内核和用户交互的方式之一。Linux在启动过程中可以将信息通过串口输出,这样便可清楚的了解Linux的启动过程。虽然它并不是Bootloader必须要完成的工作,但是通过串口输出信息是调试Bootloader和Linux内核的强有力的工具,所以一般的Bootloader都会在执行过程中初始化一个串口作为调试端口。
3)检测处理器类型Bootloader在调用Linux内核前必须检测系统的处理器类型,并将其保存到某个常量中提供给Linux内核。Linux内核在启动过程中会根据该处理器类型调用相应的初始化程序。
4)设置Linux启动参数Bootloader在执行过程中必须设置和初始化Linux的内核启动参数。
5)调用Linux内核映像Bootloader完成的最后一项工作便是调用Linux内核。如果Linux内核存放在Flash中,并且可直接在上面运行(这里的Flash指NorFlash),那么可直接跳转到内核中去执行。但由于在Flash中执行代码会有种种限制,而且速度也远不及RAM快,所以一般的嵌入式系统都是将Linux内核拷贝到RAM中,然后跳转到RAM中去执行。
linux怎么在驱动中使用串口?
Linux发行版自带usbtoserial驱动,以模块方式编译驱动,在内核源代码目录下运行MakeMenuConfig选择Devcesdrivers-->USBseupport-->
如何设置串口1作为linux调试信息输出端口?
需要修改内核配置单,在Linux移植教程中的附录5中贴出来的配置单中,在Kernelhacking里面有个S3CUart的配置,改为从0改为1或2;在SystemType里面有个S3CUART的配置,也从0改为1或2;同时修改u-boot的启动参数,bootargs中的console=ttySAC?(?从0改为1或2)。
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