
刚接触USB部分时间不长,把F4的官方例程大概看了一下,太长,太繁琐,所以,自己通过读写寄存器的方式把初始化和中断进行了梳理,目前已经能枚举成功,并能正确加载WinUSB驱动。 但是,有些寄存器的设置完全不知道作者的意图,以及寄存器的功能和设计原因,还希望有这方面研究的网友能指导一下。 1.OTG_FS_DOEPTSIZx寄存器: 手册描述:要接收 SETUP 数据包,必须将控制 OUT 端点中的 STUPCNT 字段 (OTG_FS_DOEPTSIZx) 编程为非零值。但是又接着说:如果在接 收 SETUP 数据包之前,未将 STUPCNT 字段编程为适当值,模块仍能接收 SETUP 数 据包并使 STUPCNT 字段递减。 好像是也不会因为该寄存器的值影响中断,因为没搞清楚,所以直接忽略了该寄存器的设置,仍然可以顺利枚举 2.OTG_FS_DIEPCTL0 和OTG_FS_DOEPCTL0寄存器: 在USB复位中断中,例程注释了:If the EP is already active don't change the EP Control register. 而IN EP0和OUT EP0默认情况下USBAEP=1,所以,按照注释来讲,并不会设置这2个寄存器。 但是,在枚举完成中断中,USB_OTG_EP0Activate函数又根据枚举速度来设置了DIEPCTL0.MPSIZ。 这2个设置不是相互矛盾的吗? |
STM32F103C8T6做USBCDC串口,在WINDOWS上面不能识别设备名称
STM32F407ZGT6的SD卡通过DMA控制时,无法从外部SRAM取数据
求助:I2S通过DMA搬运后通过USB上传上位机,转为.wav文件后声音嘈杂,音质很差,基本听不出人声
STM32F407VET6 I2S 采用纯中断接收数据的问题
USB连接开发板影响主机风扇的RGB
STM32H7使用HAL库如何控制外置USB HS PHY进入低功耗
关于AN2867文档的疑问
tougfx 显示问题
F429同时使用SDRAM和SRAM
CAN数据重发
第二个问题应该是端点未使能的情况下都是可以修改的
评分
查看全部评分
感谢你的解答
但是,应用程序知道SETUP包的数量干什么用呢,收到一个SETUP包之后按照要求响应主机就行了呀,需要设置这个DOEPTSIZ寄存器的应用场景有哪些呢?
端点0的控制寄存器中手册描述USBAEP总是置1的,所以,在枚举中断中,官方库又设置寄存器的MPSIZ就不明白其原因了