将上位机程序从PC的window系统迁移至Intel NUC的无桌面版ubuntu系统
问题一 网口失效
问题描述:NUC关机状态下,将网口与路由器连接,网络指示灯闪烁;NUC开机后,网络指示灯熄灭,使用ping命令,既ping不通百度,也ping不同本地ip。
经排查,NUC开机后,需要执行命令使能网口,才可以正常使用。如果NUC 的网络端口为enp86s0,则应执行以下命令:
ifconfig enp86s0 up
关闭网口,则执行以下命令
ifconfig enp86s0 down
修改配置文件,将ip设置为动态ip
vim /etc/netplan/00-installer-config.yaml
将yaml文件的内容改为
network:ethernets:enp86s0: # 有线网口的值,使用ifconfig -a 查看,根据实际情况进行修改dhcp4: trueversion: 2
执行reboot
命令,重新启动。
问题二 修改串口
问题描述:Windows下的串口名称为COM0~COMX,而Linux下的串口名称为/dev/ttyUSB0-USB*。需要对应上。
使用串口设备的时候系统会随机分配设备名称,为了使用串口通信的时候不改代码,可以对其进行绑定。
执行以下命令,查看自己设备的dVendor
和idProduct
lsusb
输出结果如下所示:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 016: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
Bus 001 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse.
Bus 001 Device 004: ID 8087:0033 Intel Corp.
Bus 001 Device 002: ID 026d:0002
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
如上图所示,串口ID为1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter Bus,即dVendor
为1a86,idProduct
为7523。
创建一个脚本文件
touch usb_rename.sh
vim usb_rename.sh
在脚本文件中输入如下内容:
echo 'KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="2303", MODE:="7523", GROUP:="dialout", SYMLINK+="stm32base"' >/etc/udev/rules.d/usb_rename.rulesservice udev reload
sleep 2
service udev restart
执行以下命令,运行脚本
sudo sh usb_rename.sh
此时,对设备进行拔插操作,运行一下命令
$ ls -l /dev |grep ttyUSB
结果如下所示:
lrwxrwxrwx 1 root root 7 7月 31 21:21 **stm32base -> ttyUSB0**
crwxrwxrwx 1 root dialout 188, 0 7月 31 21:21 ttyUSB0
python中的程序修改如下:
ser = serial.Serial( # 下面这些参数根据情况修改port='/dev/ttyUSB0', # 串口值baudrate=921600, # 波特率timeout=0.001)