USB学习【11】STM32 USB初始化过程详解
1.USB HAL库里面的结构体
为了管理USB,HAL首先构建了一下几个结构体
1.1 USBD设备结构体
USB用到的全局变量,保存了USB生命周期的全部信息。
1.2 USBD PCD底层硬件操作相关结构体
1.3 USB 配置结构体
USB速度、PHY接口类型、端点0参数等
1.4 端点配置结构体
每个端点(ep_in/ep_out)都有自己的配置,类型为USB_EPTypeDef,
1.4 几大结构体相互关系
2.USB HAL初始化
下面是初始化的函数调用路线图:
这里我们真正需要关注的点是,分组缓冲区描述表的设置,其他的都是必须得通用操纵。
这一步做的工作还是结构体的必要信息出初始化,把分组缓冲区描述表的设置根据需要写好。
初始化完成后,所有的结构体数据变成了这样,颜色对应的在相应的颜色的函数进行的修改。
这里注意,初始化的大部分工作都是结构体信息的填充,一些端口底层寄存器并没有操作。
详细的内容下一篇讲解。