您的位置 首页 解答

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

上一篇介绍到了主机上电复位USB设备,在控制传输的建立过程,发送了8个字节的数据给设备,这8个字节为0x800x060x000x010x000…

上一篇介绍到了主机上电复位USB设备,在操控传输的树立进程,发送了8个字节的数据给设备,这8个字节为0x80 0x06 0x00 0x01 0x00 0x00 0x40 0x00,该恳求为USB规范设备恳求中的GET_DESCRIPTOR恳求。0x80一共规范设备恳求,数据方向是设备到主机。0x60一共恳求类型GET_DESCRIPTOR。0x01一共描述符类型是设备描述符。0x40一共描述符长度。

设备在收到该恳求今后,首要进行解析,依据恳求中的0x40一共该操控传输有数据进程,因而进入到Data_Setup0()函数。该函数依据恳求的不同描述符,碑文不同的回调函数

CopyRoutine(),并在DataStageIn()函数中把要发送给主机的描述符填入USB缓冲区,等候USB主机发送IN令牌包。

主机在树立进程最终收到ACK今后,发送IN令牌包,然后进入到数据进程。在CTR_LP()函数中判别是IN0中止后,进入In0_Process()函数。在数据进程将之前填在USB缓冲器的设备描述符发给主机,并等候主机的应对。

主机在结语接收到的设备描述符没有犯错后,就会回来一个0数据长度的结语包,即操控传输的状况进程。在CTR_LP()函数中判别是OUT0中止,进入Out0_Process()函数,我们在状况进程,所以调用回调函数Process_Status_OUT()。

下面和上篇相同,对照着USB剖析仪捕捉的数据剖析获取设备描述符这次操控传输的数据进程和状况进程。

下面经过串口打印信息检查获取设备描述符操控传输进程中的数据包的数据。打印信息如下

至此,USB主机成功获取到设备描述符。打印信息最终能够看到,主机再次复位USB,将进入到设置地址的阶段。

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部