linux必须手动启动串口服务

linux必须手动启动串口服务,第1张

(1)在把项目打成jar包部署的时候,该jar包不能做成镜像容器运行,因为某些设备是采用485通讯,即是将设备的485线转成一个USB插入到服务器,之后服务运行的时候,是通过查询系统有哪些串口,并且是该USB的串口与服务进行通讯。整个流程通讯都是在物理服务器上面,做成镜像容器运行无法连接串口通讯。

(2)在运行jar包的时候,需要在服务器部署jdk,同时需要在部署好的jdk里面需要上传一些串口服务运行的RXTXcomm.jar和librxtxParallel.so,librxtxSerial.so,具体可以百度;在一些其他的物理服务器上面librxtxSerial.so这个文件的版本有时候有问题,需要安装x86_64-unknown-linux-gnu文件夹里面的librxtxSerial.so文件;同理window上的jdk也需要这些;

(3)程序运行出错提示的没有串口相关的文件jar包,这个需要需要考虑服务运行时候用的是那个jdk,是否把(2)里面的文件放到程序运行的jdk里面

@ 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打开串口设备

常用的匹配类型:

将USB串口设备插入USB口后,会在/dev/目录下生成/dev/ttyUSB0文件(也可能为/dev/ttyUSB1,/dev/ttyUSB2...),

查看此文件

输出为:

c说明表明设备为字符设备文件(d表示目录文件,-表示普通文件,l表示链接文件,b表示块文件),

其中rw-rw----表示root用户作为文件所有者可以读和写,dialout用户组内的用户可以读和写,其他用户不允许读、写和执行(r表示可读,w表示可写,x表示可执行)

因此,需要将当前用户增加到dialout用户组中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7390348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存