USB (三)STM32 USB 代码库

本文详细介绍了STM32F4设备和主机USB库的使用,包括传统库STSW-STM32046及其版本更新,以及Cube库STM32CubeF4。内容涵盖USB驱动、设备库核心、类库如音频和MSC,以及回调函数实现。强调ST官方已不再推荐使用传统库,并提供了STM32F3USB库的搜索方法。
摘要由CSDN通过智能技术生成
代码在哪里
以 stm32f4为例,stm32 usb 提供的有两种,直接以下面的关键字去https://www.st.com上搜1个是 传统的(不带hal层)		: STSW-STM32046 // 2021-7-3 17:12:59 版本为 2.2.1 , 没有其他的版本可选2个是 cube的(带hal层)		: STM32CubeF4

// ST官方已经不推荐使用 传统的USB库了,也不再更新
// cube 中有 class video ,但是 传统USB 中没有 class video
// STM32CubeMX 中带有最新的 cube 库
如果想要stm32f3 usb 的库, 搜索关键字 "stm32f3 usb"
该关键字搜索出来的东西包括 软件包和文档,最好都下载下来看看

正点原子stm32f4 探索者 用的是 STSW-STM32046,版本为1.1.0
 * @author  MCD Application Team
 * @version V1.1.0
 * @date    19-March-2012
STSW-STM32046 当前(2021-7-3 17:16:20)最新版本为2.2.1
 * @author  MCD Application Team
 * @version V2.2.1
 * @date    17-March-2018
代码简介
  • slave侧
1. usb_core.c usb_dcd.c usb_dcd_int.c usb_bsp.c
2. usbd_core.c usbd_ioreq.c usbd_req.c
3. usbd_audio_core.c usbd_audio_out_if.c/usbd_msc_bot.c usbd_msc_core.c usbd_msc_data.c usbd_msc_scsi.c
4. usbd_desc.c usbd_usr.c stm324xg_usb_audio_codec.c/usbd_storage_msd.c

1中的代码 为 usb driver ,该代码直接操作usb硬件,usb_bsp.c需要用户改动
2中的代码 为 usb device 库 中的 core  部分
3中的代码 为 usb device 库 中的 class 部分,该篇中显示的为 class audio 和 class msc
4中得代码 为 USB配置端口部分 及 回调函数实现部分, 该部分需要用户改动

  • host侧
1. usb_core.c usb_dcd.c usb_dcd_int.c usb_bsp.c
2. usbh_core.c usbh_ioreq.c usbh_hcs.c usbh_stdreq.c
3. usbh_msc_bot.c usbh_msc_core.c usbh_msc_scsi.c/usbh_hid_core.c usbh_hid_keybd.c udbh_hid_mouse.c
4. usbh_usr.c 

1中的代码 为 usb driver ,该代码直接操作usb硬件,usb_bsp.c需要用户改动
2中的代码 为 usb host 库 中的 core  部分
3中的代码 为 usb host 库 中的 class 部分,该篇中显示的为 class msc和 class hid
4中得代码 为 回调函数实现部分
STSW-STM32046 2.2.1 部分代码
STM32_USB-Host-Device_Lib_V2.2.0/Libraries $ tree
.
├── STM32_USB_Device_Library
│   ├── Class
│   │   ├── hid_msc_wrapper
│   │   │   ├── inc
│   │   │   │   └── usbd_msc_hid_core.h
│   │   │   └── src
│   │   │       └── usbd_msc_hid_core.c
│   │   ├── msc 	// 大容量存储
│   │   │   ├── inc
│   │   │   │   ├── usbd_msc_bot.h
│   │   │   │   ├── usbd_msc_core.h
│   │   │   │   ├── usbd_msc_data.h
│   │   │   │   ├── usbd_msc_mem.h
│   │   │   │   └── usbd_msc_scsi.h
│   │   │   └── src
│   │   │       ├── usbd_msc_bot.c
│   │   │       ├── usbd_msc_core.c
│   │   │       ├── usbd_msc_data.c
│   │   │       ├── usbd_msc_scsi.c
│   │   │       └── usbd_storage_template.c
│   │	├── audio 	// 音频
│   │	├── cdc 	// usb转串口或usb转ethernet
│   │	├── customhid
│   │	├── dfu 	// 固件上传下载
│   │	├── hid 	// 键盘鼠标
│   │	└── hid_cdc_wrapper
│   │
│   ├── Core
│   │   ├── inc
│   │   │   ├── usbd_conf_template.h
│   │   │   ├── usbd_core.h
│   │   │   ├── usbd_def.h
│   │   │   ├── usbd_ioreq.h
│   │   │   ├── usbd_req.h
│   │   │   └── usbd_usr.h
│   │   └── src
│   │       ├── usbd_core.c
│   │       ├── usbd_ioreq.c
│   │       └── usbd_req.c
│   └── Release_Notes.html
└── STM32_USB_OTG_Driver
    ├── Release_Notes.html
    ├── inc
    │   ├── usb_bsp.h
    │   ├── usb_conf_template.h
    │   ├── usb_core.h
    │   ├── usb_dcd.h
    │   ├── usb_dcd_int.h
    │   ├── usb_defines.h
    │   ├── usb_hcd.h
    │   ├── usb_hcd_int.h
    │   ├── usb_otg.h
    │   └── usb_regs.h
    └── src
        ├── usb_bsp_template.c
        ├── usb_core.c
        ├── usb_dcd.c
        ├── usb_dcd_int.c
        ├── usb_hcd.c
        ├── usb_hcd_int.c
        └── usb_otg.c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值