如何修复 PlatformIO STM32 Error: libusb_open() failed with LIBUSB_ERROR_ACCESS

问题:

尝试使用 stlink 和 PlatformIO 编程你的 STM32 板时(集成在开发板上的大多数编程器是 STLink 编程器),你看到此错误消息:

openocd_libusb_error.txt
xPack OpenOCD, x86_64 Open On-Chip Debugger 0.11.0-00155-ge392e485e (2021-03-15-16:43)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.org/doc/doxygen/bugs.html
debug_level: 1

hla_swd
Error: libusb_open() failed with LIBUSB_ERROR_ACCESS
Error: open failed
in procedure 'program'
** OpenOCD init failed **
shutdown command invoked

解决方案

你需要为 STLink usb 设备设置正确的权限 - 换句话说,安装正确的 stlink udev 规则文件。在 Ubuntu 上,使用以下命令安装 stlink-tools

install_stlink_tools.sh
sudo apt -y install stlink-tools
sudo systemctl restart udev

之后,拔下你的 stlink(或开发板)5 秒钟然后重新插入。这将使新设备权限生效。

现在你可以从 PlatformIO 重试上传固件。


Check out similar posts by category: PlatformIO, STM32