STM32
直播中

罗星

8年用户 1496经验值
擅长:模拟技术
私信 关注
[问答]

STM32F401VC USB枚举成自定义HID,为什么每台设备连接到同一台电脑上都要有一个加载驱动的过程?

我的项目用的是STM32[i]F401VC,USB枚举成自定义HID.生产过程中每台设备都要连接电脑下载数据.现在的问题是每台设备连接到同一台电脑上都要有一个加载(寻找)驱动的过程(约20-30s),降低了效率.我是使用HAL开发的程序.之前同事采用标准库开发的同类产品就没有这个问题,请问如何能解决这个问题?

回帖(1)

周臻庸

2024-4-1 16:58:11
这个问题可能是由于驱动程序签名验证引起的。Windows操作系统存在一个叫做“Driver Signature Enforcement”的功能,该功能会检查每个设备驱动程序是否具有有效的数字签名。如果驱动程序没有经过验证或者签名,则会触发加载驱动程序的过程,导致连接过程耗时较长。这可能是您使用HAL开发出现该问题的原因,而同事使用标准库开发的产品则没有遇到该问题。

有几种方法可以解决这个问题:

1. 获取数字签名:可以通过向微软或其他认证机构申请数字签名来解决此问题。根据签名类型的不同,可能需要缴纳一定的费用。

2. 禁用驱动程序签名验证:在Windows启动设置中,可以选择禁用驱动程序签名验证。这将允许您加载未经验证的驱动程序,但同时会降低系统的安全性。

3. 使用Microsoft USB Generic parent driver:通过使用Microsoft USB Generic parent driver作为HID设备的父级驱动程序,可以避免加载设备特定的驱动程序。这样一来,每次连接新的设备时,无需加载驱动程序。

您可以根据具体的需求和环境选择适合的解决方法。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分