STM32 USB 库介绍

余生长醉 提交于 2020-01-19 03:50:14

1 STM32 USB 库

在这里插入图片描述

2 STM32_USB-FS_Device_Driver-Low Layer

2.1 usb_regs

实现了硬件抽象层,提供了 usb 寄存器操作函数集合。


函数有两种调用的方式:

  1. 作为宏:_ 调用方式是:函数名(参数1,2…)
  2. 作为子程序:调用方式:函数名(参数1,2…)

2.2 usb_int

处理正确传输的中断服务程序。

  • 低优先级中断,由 CTR_LP() 处理,用于控制模式、中断模式、批量模式(单缓冲区)
  • 高优先级中断,CTR_HP() 处理,用于快速传输模式,比如同步模式、批量模式(双缓冲区)

2.3 usb_mem

用户内存区(user memory area) 和 USB 模块内存区 PMA(packet memory area)直接拷贝数据。

void UserToPMABufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)void PMAToUserBufferCopy(uint8_t *pbUsrBuf, uint16_t wPMABufAddr, uint16_t wNBytes)

3 STM32_USB-FS_Device_Driver-medium Layer

3.1 usb_init

设备 usb 初始化函数和全局变量

3.2 usb_core

实现 USB2.0 规范

4 应用程序接口层

4.1 usb_bot.c

  • BOT (Bulk Only Transport) 协议
  • usb_bot.c是新出现的文件,这个文件只要是BOT的状态机,所谓的BOT其实就是仅限批量传输的意思,我们这里用到的是端点的仅批量传输的。这个文件对不同USB状态的做不同的操作。
  • 参考

https://blog.csdn.net/codectq/article/details/17543657
https://www.cnblogs.com/shangdawei/archive/2013/06/13/3133526.HTML

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!