这是一笔交易,我想用我的USB串行端口闪存我的stm32板。我的stm32板配有一个可携带CH340的扩展板。
当我将板连接到计算机时,我可以用命令lsusb
看到设备,输出为Bus 001 Device 039: ID 1a86:7523 QinHeng Electronics CH340 serial converter
。
但是我在/dev
路径下找不到ttyUSB
文件。
然后我运行dmesg | grep tty
,这是输出:
[1182096.667353] usb 1-9: ch341-uart converter now attached to ttyUSB0
[1182096.729868] audit: type=1130 audit(1637925474.011:3648): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=brltty-device@sys-devices-pci0000:00-0000:00:14.0-usb1-1x2d9 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[1182096.800144] audit: type=1130 audit(1637925474.081:3649): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=brltty@-sys-devices-pci0000:00-0000:00:14.0-usb1-1x2d9 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'
[1182096.803145] usb 1-9: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[1182096.803731] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
有人知道这里出了什么问题吗?谢谢
对于Ubuntu 22.04,最简单的解决方案是通过sudo apt remove brltty
删除包brltty,因为除非你使用盲文电子阅读器,否则这是不必要的,但不确定它是否会在以后导致错误。
有关brltty的信息,请访问网站https://brltty.app/
好吧,我刚刚在forum.manjaro.org上找到了一篇帖子,下面是链接:https://forum.manjaro.org/t/cant-connect-serial-port-error-ch341-uart-disconnected-from-ttyusb0/87208
对于arch/manjaro系统(不确定是否适用于其他发行版(,您需要删除一些udev规则。
sudo mv /usr/lib/udev/rules.d/90-brltty-device.rules /usr/lib/udev/rules.d/90-brltty-device.rules.disabled
sudo mv /usr/lib/udev/rules.d/90-brltty-uinput.rules /usr/lib/udev/rules.d/90-brltty-uinput.rules.disabled
sudo udevadm control --reload-rules
我不知道为什么,但我做到了,而且效果很好。现在我可以找到我的ttyUSB0
设备文件了。
因此,有一个盲文阅读器使用相同的串行转换器,udev规则为该设备配置芯片。实际上,您不需要完全删除udev规则文件,只需禁用/注释掉单个设备的规则即可。就是这个:
# Device: 1A86:7523
# Baum [NLS eReader Zoomax (20 cells)]
ENV{PRODUCT}=="1a86/7523/*", ENV{BRLTTY_BRAILLE_DRIVER}="bm", GOTO="brltty_usb_run"
注释以ENV开头的行。
我能够使用lsusb和dmesg|grep-tty看到设备,但无法从平台上传代码。
sudo apt删除brltty
这修复了我在Ubuntu 20.04上使用ESP8266(ch341 uart转换器(上传的问题。