您的位置 首页 电子

根据STM32的USB枚举进程学习笔记(四)

前几篇介绍中,USB主机完成了获取设备的描述符,现在进入第二步,设置设备的地址阶段。该阶段是一个无数据过程的控制传输。首先,在…

前几篇介绍中,USB主机完成了获取设备的描述符,现在进入第二步,设置设备的地址阶段。

该阶段是一个无数据进程的操控传输。首要,在树立进程中USB主机往设备的端点0宣布一个设置地址的恳求,新地址在树立进程的数据包中。该业务的结构包含:SETUP0令牌包+SET_ADDRESS数据包+握手包。在树立进程之后直接进入到的状况进程,由于设置地址阶段是一个无数据进程的操控传输。在状况进程,设备等候主机恳求状况回来(即等候主机发送一个IN令牌包),收到IN令牌包后,设备就回来一个0长度的数据包,假如主机结语该数据包现已正确收到,就会发送应对包ACK给设备,设备收到ACK之后,就要发动新的设备地址,这样设备就分配到了一个仅有的设备地址。

接下来将这段设置地址的进程经过USB剖析仪捕捉剖析如下

接着剖析STM32 USB_HID比如中的枚举进程的设置地址阶段。同样在接收到主机的setup0令牌后,STM32 USB进入中止处理函数Setup0_Process(),由所以没有数据进程的操控传输,接着进入NoData_Setup0()函数,函数最终经过USB_StatusIn()等候主机的IN令牌,即状况阶段。主机发IN令牌进入到状况阶段,USB中止函数中碑文In0_Process()函数,该函数把在树立进程函数Setup0_Process()中保存在pInformation的地址信息,经过SetDeviceAddress()函数,装备新的设备地址。串口的调试信息如下

至此,设备新的地址设置成功,这儿设置成0x6,之后的进程将运用这个新地址。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/dianzi/265700.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部