使用STM32CubeMX生成USB驱动程序 USB无法检测到的问题 生成USB驱动

本文详细介绍了如何使用STM32CubeMX生成USB驱动程序,包括选择芯片、配置时钟、设置USB选项、处理调试问题以及解决电脑无法检测到USB设备的故障。同时,还介绍了如何使用inf-wizard工具生成USB驱动并安装,确保设备能被电脑识别。
摘要由CSDN通过智能技术生成

以STM32CubeMX生成USB驱动为例,其步骤如下:

一、使用STM32CubeMX生成USB驱动程序

打开STM32CubeMX软件,选择Start My project formMCU,点ACCESS TO MCU SELECTOR。

选择相应的芯片信号,点击Start Project

配置RCC的High Speed Clock为图中所示,位置为外部时钟。

选择SYS的Debug为Serial Wire,开启调试,否则下载程序后无法再次下载。具体解决方法参考链接:

ST-LINK无法下载程序的解决方法

在Connectivety下选择USB,勾选Device(FS),配置NVIC的中断,打上对勾,开启中断。

在USB_DEVICE中的mode,选择Communication Device Class配置,在Device Descriptor中配置USB的信息,根据图片自行修改。

在Clock configuration中,选择HES外部晶振,选择PLLCLK。在HCLK(MHz)下,填入72,点回车,等待系统自动配置时钟,配置完成后,USB时钟为48MHz,注意USB必须为48MHz。

在Project Manager中,一次填写工程名称,路径,IDE选择MDK-ARM,Minimum Heap Size改为0x400或者0x800,否则可能出现USB在调用USBD_malloc() 申请内存是失败,导致数据无法接收的情况。点击右上角GENERATE CODE。

打开工程文件,编译后下载到板子上,会在设备管理器看到这个设备

测试中出现电脑上检测不到USB设备的情况,经过查阅资料,USB的DP引脚必须上拉1.5K欧的电阻,才能检测到,否则电脑上检测不到。

电脑检测到USB的设备后,还需要安装相应的驱动。使用inf-wizard工具生成USB驱动。

打开后,选择对应的设备,一路NEXT下去,等一会就会生成对应的驱动,安装该驱动,设备就能被电脑识别。

工程文件和USB驱动生成工具稍后附上链接。

下载链接:

STM32F103的USB工程及USB驱动生成工具

STM32F103的USB上位机软件

  • 8
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
自己编写STM32USB驱动需要以下步骤: 1. 确定所需的库和工具。需要安装STM32CubeMX、开发工具(如Keil、IAR等)、USB标准库和相关文档。 2. 使用STM32CubeMX工具生成初始化代码。打开STM32CubeMX,在配置向导中选择相应的型号和外设,启用USB功能,并进行必要的配置。生成代码后,将其导入到开发工具中。 3. 在主函数中配置USB相关参数。根据需要设置USB传输速率、传输类型等参数。根据应用需求设置可用的USB端点数。 4. 实现USB中断处理函数。中断函数用于处理USB相关的事件,如连接和断开设备、接收和发送数据等。根据所用的开发工具,实现适当的中断处理函数。 5. 编写USB设备驱动函数。根据设备类型和应用需求,编写实现USB设备驱动的函数。这包括初始化USB设备、发送和接收数据、处理请求和命令等。 6. 添加USB设备描述符。根据应用需求编写USB设备描述符,包括设备描述符、配置描述符、接口描述符以及端点描述符等。这些描述符定义了USB设备的属性和功能,为主机提供与设备通信的必要信息。 7. 对USB传输进行数据收发处理。根据应用需求,在驱动函数中实现USB传输的读写逻辑。这涉及数据缓冲区的管理、数据的解析和处理等。 8. 进行调试和测试。使用仿真器或调试工具对编写的驱动程序进行调试和测试。确保驱动程序能够正确地与主机通信,实现所需的数据传输功能。 以上是自己编写STM32USB驱动的基本步骤,希望能对你有所帮助。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值