STM32官方所有USB例程笔记

写本文时正在寻找STM32F429 VCP例程,想起之前调试过的F103和F407,记录一下

STM32F1~F4的官方例程,偏爱官方例程,因为比较规范,原机汁原味

官方地址:http://www.st.com/en/embedded-software/stsw-stm32046.html

或者官方网站搜索:host-device_lib

以上例程是官方的,基于IAR


然后还需要驱动程序

地址:http://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-utilities/stsw-stm32102.html

搜索:Virtual COM


如果驱动不成功

由于一些系统被精简的原因会丢失mdmcpq.inf和usbser.sys导致不能正确驱动,解决方法如下
1、确保c:\windows\inf陌路下面存在mdmcpq.inf
2、确保c:\windows\system32\drivers陌路下面存在usbser.sys
3、如果以上路径文件均不存在请找到本CD里面"Driver"文件夹下面的对应系统的两个文件复制到上面描述的文件目录下

4、检查安装的驱动的C:\Program Files (x86)\STMicroelectronics\Software\Virtual comport driver\Win7下的

stmcdc.inf文件  


;------------------------------------------------------------------------------
;            VID/PID Settings
;------------------------------------------------------------------------------
[DeviceList.NT]
%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5740


[DeviceList.NTamd64]
%DESCRIPTION%=DriverInstall,USB\VID_0483&PID_5740


VID和 PID是否和程序的一致

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于 STM32F407 的 USB 库,ST 官方提供了一套全面的 USB 库,支持各种不同的 USB 设备、传输类型和 USB 规范。下面是一个基于 STM32F407 的 USB HID 设备程的详解。 1. 硬件配置 首先需要配置 STM32F407 的硬件,包括 USB 引脚、时钟和中断。在本程中,使用的是 USB FS 接口。需要将 PA11 和 PA12 两个引脚配置为 USB D- 和 USB D+,并将 USB FS 的时钟使能。另外,还需要使能 USB 的全局中断和 USB 中断。 2. USB 库初始化 在 main 函数中,需要对 USB 库进行初始化。首先需要调用 `USB_OTG_BSP_Init()` 函数,该函数是 STM32F407 USB 库的 BSP(板级支持包)初始化函数,用于初始化 USB 底层硬件。然后需要调用 `USBD_Init()` 函数,该函数用于初始化 USB 设备和相关配置。最后,调用 `USBD_RegisterClass()` 函数注册 USB 设备类别,这里注册的是 HID 设备类别。 3. USB 设备处理 USB 设备处理是一个主循环函数,用于处理 USB 设备的状态和事件。在该函数中,需要调用 `USBD_HandleEvent()` 函数,该函数用于处理 USB 事件和状态变化。当 USB 设备收到数据时,会触发 `USBD_HID_SendReport()` 函数,该函数用于发送 HID 数据报。 4. USB 中断处理 USB 中断处理函数是用于处理 USB 中断事件的函数。在 STM32F407 中,有三个 USB 中断处理函数,分别是 USB FS 中断、USB OTG 中断和 USB HS 中断。在本程中,使用的是 USB FS 中断,因此需要实现 `OTG_FS_IRQHandler()` 函数。在该函数中,需要调用 `USBD_OTG_ISR_Handler()` 函数,该函数用于处理 USB FS 中断事件。 5. HID 数据报 HID 数据报是 HID 设备向主机传输数据的一种方式。在 STM32F407 的 USB 库中,可以通过 `USBD_HID_SendReport()` 函数发送 HID 数据报。发送的数据报需要是一个结构体,包含 HID 报告描述符中定义的所有数据项。在本程中,发送的 HID 数据报是一个包含一个字节的数据项的结构体。 6. HID 描述符 HID 描述符是用于描述 HID 设备的数据格式和功能的一种格式。在 STM32F407 的 USB 库中,可以通过 `USBD_HID_RegisterInterface()` 函数注册 HID 设备的描述符。在本程中,HID 描述符包含三个子描述符:设备描述符、配置描述符和报告描述符。设备描述符和配置描述符用于描述设备的基本信息和配置,报告描述符用于描述设备的数据格式。 7. HID 报告 HID 报告是 HID 设备向主机传输数据的一种方式。在 STM32F407 的 USB 库中,可以通过 `USBD_HID_SendReport()` 函数发送 HID 报告。发送的报告需要是 HID 报告描述符中定义的结构体。在本程中,发送的 HID 报告只包含一个字节的数据项。 总结 以上就是 STM32F407 USB HID 设备程的详解。在实际开发中,可以根据需要修改和扩展该程,如增加数据项、修改数据格式等。同时,需要注意 USB 设备的硬件配置和 USB 库的初始化和处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值