STM32 USB无法连接电脑

在STM32开发中,移植USB device MSC功能时遇到电脑无法识别设备的问题。通过对比分析发现,可能原因是hal_delay()实现方式不同,原本依赖SysTick中断的延时函数可能与USB中断冲突。但在后续排查中发现,该问题并非由延时函数引起,即使使用不依赖中断的延时实现也能正常连接。官方库中推荐使用不依赖中断的延时方式。
摘要由CSDN通过智能技术生成

一、说明

在调试 STM32 USB device MSC 功能时,使用官方提供的库和示例项目,电脑可以正确识别设备,也可以正常操作。但是将 USB 部分的代码移植到自己的工程后,发现电脑无法正确识别设备,有时会在右下角显示无法识别设备。

二、解决方法

在main.c中添加 hal_delay() 函数的实现方式。

在默认的模板工程里,一般使用如下的方式实现延迟函数。


__weak uint32_t HAL_GetTick(void)
{
  return uwTick;
}

__weak void HAL_Delay(__IO uint32_t Delay)
{
  uint32_t tickstart = 0U;
  tickstart = HAL_GetTick();
  while((HAL_GetTick() - tickstart) < Delay)
  {
  }
}

而在 USB 项目中,需要使用如下的方式实现延时函数。

void HAL_Delay(
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要让电脑识别STM32 USB设备,需要进行以下步骤: 1. 安装必要的驱动程序:打开ST官方网站,下载最新的USB驱动程序并安装于电脑上。这些驱动程序可以确保电脑正确识别和与STM32 USB设备通信。 2. 设置STM32 USB设备:通过编程使用STM32USB库,配置STM32 USB设备的参数,例如USB连接模式、速度等。确保设备和电脑USB协议一致。 3. 编写USB设备描述符:在STM32上编写USB设备描述符,它包含设备的基本信息,如制造商ID、产品ID等。这些信息将帮助电脑正确识别STM32 USB设备。 4. 编写USB应用程序:使用STM32USB库,编写应用程序以处理USB连接的数据传输和通信。确保应用程序正确访问STM32USB接口,以便和电脑进行数据交互。 5. 运行程序并连接电脑:编译和烧录STM32的固件后,将STM32通过USB连接电脑上。电脑应该能够自动检测到STM32 USB设备,并在设备管理器中显示出来。 6. 检查问题和故障排除:如果电脑无法识别STM32 USB设备,可以通过以下途径排查问题:1)检查USB线缆是否正常连接;2)检查STM32USB连接设置是否正确;3)检查驱动程序是否正确安装;4)重新启动电脑等。 总结:要让电脑正确识别STM32 USB设备,需要安装驱动程序、配置STM32 USB设备参数、编写USB设备描述符和应用程序,并确保连接正确无误。如果出现问题,可以通过排查问题的方式解决。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值