Clion+STM 32Warn : Failed to open device: LIBUSB_ERROR_NOT_SUPPORTED

本文介绍了如何在Clion使用STM32进行调试时,解决OpenOCD无法识别J-Link的问题。通过下载Zadig工具,将J-Link驱动转换为Winusb,可以确保Clion正常仿真调试。同时,如果需要在Keil环境下调试,可以使用USBDriverTool将驱动转换回来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在Clion+STM32下调试

Clion解决openocd无法识别jlink

将J-Llink驱动转成Winusb即可。

方法

下载 Zadig 工具: http://zadig.akeo.ie
Options 点击 List All Devices
在这里插入图片描述

在这里插入图片描述
点击箭头处,选择 J-Link,在 Driver 出选择 jlink,另一边选择 Winusb,然后点击 Replace Driver,等待完成即可。

若要转换到keil下调试

由于 jlink 驱动被转换成 winusb 驱动了,所以在keil那边不能直接用J-Link烧录代码。
如需用到keil,使用USB Driver tool 将 j-link 驱动转换即可。
双击 J-Link 在 Driver Selection 选择需要的驱动双击即可。

在这里插入图片描述


注意

J-Link 是在clion上仿真调试
J-Link driver 是在keil 上仿真调试


### CLion 单片机项目编译错误 `undefined reference to 'can_filter_init'` 的解决方案 当遇到链接错误 `undefined reference to 'can_filter_init'` 时,通常意味着链接阶段未能找到该函数的定义。这可能是由于以下几个原因造成的: #### 1. 函数未实现或拼写错误 确保 `can_filter_init` 函数已经在某个源文件中实现了,并且拼写完全一致。 #### 2. 文件未加入构建过程 如果包含 `can_filter_init` 实现的源文件没有被正确添加到项目的构建过程中,则会出现此问题。对于 CMake 项目,在 `CMakeLists.txt` 中确认所有必要的源文件都已列出[^1]。 ```cmake add_executable(${PROJECT_NAME} src/main.c src/can_driver.c # 假设 can_filter_init 定义在此处 ) ``` #### 3. 库依赖缺失 如果是调用了外部库中的函数而发生此类错误,需检查是否已经正确配置并链接了所需的第三方静态/动态库。针对单片机开发环境,可能涉及到特定硬件抽象层 (HAL) 或者其他驱动库的支持[^3]。 例如,假设 `can_filter_init` 是由 STMicroelectronics 提供的标准外设库的一部分,那么应该像下面这样设置 CMake 来引入这些库路径和目标: ```cmake target_include_directories(${PROJECT_NAME} PRIVATE ${STM32_HAL_DIR}/Inc/) target_link_libraries(${PROJECT_NAME} ${STM32_HAL_LIB}) ``` 其中 `${STM32_HAL_DIR}` 和 `${STM32_HAL_LIB}` 变量应指向实际安装位置以及要链接的目标名称。 #### 4. 构建工具链配置不当 某些情况下,即使上述条件均满足仍然会遭遇同样的链接失败现象,这时可以考虑调整 IDE 设置来排除潜在干扰因素。比如在 CLion 中新建项目时不慎遗漏了将新创建的类或其他资源自动纳入工程结构的选择项可能会引发类似的问题[^2]。 为了防止这种情况的发生,在使用 CLion 创建新的 CPP 类或者其他类型的文件之前,请务必留意对话框内的提示信息,特别是关于“Add to project”的选项状态。 通过以上措施应当能够有效解决大多数因链接器找不到符号而导致的编译期报错情况;当然具体情况还需结合个人使用的具体平台和技术栈进一步排查分析。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值