⑴ 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 是一个程序用于设定并/或报告某个串口关联的配置信息。该信息包括串口用到的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串口无法配置波特率
我们用一条交叉网线把NPort5110 和PC机的网口连接起来,并把NPort上电。
首先,打开控制面板,网络连接。
在本地连接上点右键,选择属性。
双击进入 Internet协议(TCP/IP),点击“使用下面的IP地址”
写入 IP 地址和子网掩码,记住要和NPORT 的IP 地址在同一子网段内。如NPORT 默认IP
为192.168.127.254,255.255.255.0;就需要把PC 机的IP 地址设为192.168.127.XXX,
255.255.255.0,最后一个数字不同即可。
点击确定。
第二章:网络和串口参数配置
搜索 NPort
打开NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此
时请确认网络防火墙已经关闭。
会搜索到我们的NPort5110,点击stop,停止搜索。
网络参数配置
双击右边空白处的NPort 设备,会出现以下界面,点击选择Network 选项卡,点击Modify
修改。可以看到以下界面:
我们可以在里面修改NPort的以下参数:
IPAddress:IP地址。
Netmask:子网掩码。
Gateway:网关。
IP Configuration:可以配置为静态IP(Static),或者为DHCP(动态IP)。
DNS Server1和2:DNS,域名解析服务器。
串口参数配置
点击 Serial选项卡,点击Modify修改,双击端口进去,可以看到以下界面:
我们可以在里面修改以下参数:
Baud Rate:波特率,NPort5000 系列只能支持标准波特率,如9600,115200bps 等。
Parity:校验。
None:无校验
Even:偶校验。
Odd:奇校验。
Space:空。
Mark:标志。
Data Bits:数据位。
Stop Bits:停止位。
Flow Control:流量控制。
None:无流量控制。
XON/XOFF:软件流控。
RTS/CTS:硬件流控。
FIFO:64bit先进先出,为了降低CPU负载,提高设备性能。可以选择Enable启用,或Disable
禁用。
Interface:可选择RS232,RS422,RS485 2线,或者RS485 4线。(NP5110 只能为RS232)
设置好后,点击OK,设置保存,设备重新启动。
第三章:操作模式设置
Real COM映射端口
打开 NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此
时请确认网络防火墙已经关闭。
会搜索到我们的NPort5110,点击stop,停止搜索。
双击右边的5110,选择Operating Mode选项卡,确认为Real COM模式:
点击左边的第四项:COM MAPPING,
再点击Add
点击“OK”,
点击“Apply”保存
点击“Yes”,点击“OK”。
这样,端口就映射好了。
TCP Server模式的设置(用软件)
打开 NPort Administrator(可以在光盘的对应位置找到这个软件,安装好),点击Search,此
时请确认网络防火墙已经关闭。
会搜索到我们的NPort5110,点击stop,停止搜索。如果打开防火墙,可以使用Search IP,
在下面选项框里输入NPort的IP地址,
点击 OK,就可以搜索到NPort设备。
双击右边的NP5110,切换到OperatingMode选项卡,点击Modify,双击进去。可以把模式
修改成TCP Server 模式。
里面的名词解释:
Local TCP Port:本地数据端口,指的是NP5110 的数据端口。
Command Port:NP5110 的命令端口。
Max Connection:最大连接数,也就是说同时最大可以有几台上位机采集到下面串口设备
的数据,NPort5000 系列最大是4 个,NPort6000 和CN2600 系列是8 个。
当最大连接数为2 或以上的时候,右边的选项Allow Driver Control 和Ignore Jammed IP会开
启。
Allow Driver Control:当最大连接数为2 或以上时,且此功能打开时,上位机A 需要以
4800bps打开串口,上位机B需要以9600bps打开串口,是可以的。如果此功能关闭,则波
特率需以固件中的设置一致。
Ignore Jammed IP:当最大连接数为2 或以上时,且此功能打开时,其中一台上位机A死
机,上位机B 依然可以正常接收数据。如果此功能关闭,则上位机B 也不能收到串口的数
据了。
⑶ 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下串口是否可用串口名称等
分析如下:
1、查看串口是否可用,可以对串口发送数据比如对com1口,echo lyjie126 > /dev/ttyS0。
2、查看串口名称使用ls-l/dev/ttyS* 一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;
3、查看串口驱动:cat /proc/tty/drivers/serial。
4、查看串口设备:dmesg | grep ttyS*。
(4)linux串口配置命令扩展阅读
串口控制器顾名思义,就是可通过串口实现控制功能的一台控制器。即由上位机通过串口发送特定协议格式的指令给控制器,进而来控制外围设备或器件,也叫单片机串口控制器。
串口控制器就是1台写入了串口通信程序的单片机控制器,有2种工作模式:
1)上位机监控模式:可由上位机串口控制,实现串口监控;
2)脱机控制模式:在通过上位机设置好相关参数后,也可脱离上位机进行独立控制。
串口控制器就是1台写入了串口通信程序的单片机控制器,有2种工作模式:
1)上位机监控模式:可由上位机串口控制,实现串口监控;
2)脱机控制模式:在通过上位机设置好相关参数后,也可脱离上位机进行独立控制。
⑸ Linux普通用户运行串口
将USB串口设备插入USB口后,会在/dev/目录下生成/dev/ttyUSB0文件(也可能为/dev/ttyUSB1,/dev/ttyUSB2...),
查看此文件
输出为:
c说明表明设备为字符设备文件(d表示目录文件,-表示普通文件,l表示链接文件,b表示块文件),
其中rw-rw----表示root用户作为文件所有者可以读和写,dialout用户组内的用户可以读和写,其他用户不允许读、写和执行(r表示可读,w表示可写,x表示可执行)
因此,需要将当前用户增加到dialout用户组中
⑹ 如何设置linux启动时的串口波特率
用命令minicom -s 可以进到串口的设置界面 一般串口的Serial Device 值是填/dev/ttyS0 然后设置一下Bps/Par/Bits 保存,根据提示登陆串口即可
⑺ linux如何更改屏幕显示串口
setserial命令可用来设置串口。
串行接口是采用串行通信方式的扩展接口,指数据一位一位地顺序传送。串行接口的特点是通信线路简单,只要一对传输线就可以实现双向通信,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。
⑻ linux 内核 配置串口
由于linux的内核参数信息都存在内存中,因此可以通过命令直接修改,并且修改后直接生效。但是,当系统重新启动后,原来设置的参数值就会丢失,而系统每次启动时都会自动去/etc/sysctl.conf文件中读取内核参数,因此将内核的参数配置写入这个文件中,是一个比较好的选择。
首先打开/etc/sysctl.conf文件,查看如下两行的设置值,这里是:
kernel.shmall = 2097152
kernel.shmmax = 4294967295 如果系统默认的配置比这里给出的值大,就不要修改原有配置。同时在/etc/sysctl.conf文件最后,添加以下内容:
fs.file-max = 6553600
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144
这里的“fs.file-max = 6553600”其实是由“fs.file-max = 512 * processes”得到的,我们指定processes的值为12800,即为“fs.file-max =512 *12800”。
sysctl.conf文件修改完毕后,接着执行“sysctl -p”使设置生效。
[root@localhost ~]# sysctl -p 常用的内核参数的含义如下。
kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4gb,即“4294967295/1024/1024/1024=4g”。
kernel.shmmni:表示单个共享内存段的最小值,一般为4kb,即4096bit.
kernel.shmall:表示可用共享内存的总量,单位是页,在32位系统上一页等于4kb,也就是4096字节。
fs.file-max:表示文件句柄的最大数量。文件句柄表示在linux系统中可以打开的文件数量。
ip_local_port_range:表示端口的范围,为指定的内容。
kernel.sem:表示设置的信号量,这4个参数内容大小固定。
net.core.rmem_default:表示接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max :表示接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default:表示发送套接字缓冲区大小的缺省值(以字节为单位)。
net.core.wmem_max:表示发送套接字缓冲区大小的最大值(以字节为单位)。
⑼ 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串口相关的操作及绑定
@ toc
可在控制台输入
也可以用stty设置串口参数
使用后相当于串口回传,发什么回什么
发送数据
可以对串口发送数据比如对com1口
一般情况下串口的名称全部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;
如果有ttyS设备,再看/dev/有没有ttyS*,如没有就建立一个:
如果板子的设备中没有标准串口设备ttyS0,也没有ttySAC0。/dev下应该有一个USB串口:/dev/ttyUSB0.
当一个串行卡或数据卡被侦测到时,它会被指定成为第一个可用的串行设备。通常是/dev/ttyS1(cua1)或/dev/ttyS2(cua2),这完成看原已内建的串口数目。ttyS*设备会被报告在/var/run/stab内。
PC上的串口一般是ttyS,板子上Linux的串口一般叫做ttySAC
可能是linux下的串口设备没有打开,需要改变串口设备
的权限,或者根据文章头添加用户到组处理
可以通过以下命令 查看 板子上的硬件端口的内核设备名
该条命令会将 ttyUSB0所对应的硬件端口的kernel设备名 显现出来, 得到KERNEL== '1-5.5.4', 而不是之前的ttyUSB0
cmd.sh如下:
./getUSB.py 调用当前路径下的getUSB.py这个Python语言,明确此次是哪个,ttyUSB0,或者ttyUSB1挂载在端口3-1.1上
getUSB.py:
完成之后 ,设置开机启动cmd.sh(在/etc/rc.local中设置)则每次开机之后,会从/dev/ttydata获取到固定端口的数据
方式一
写入内容如下:
方式二
我的硬件序列号:ATTRS{serial}=="FTSYWCXZ"这个号是唯一的
可以通过/dev/usb_0打开串口设备
常用的匹配类型: