USB的描述符详解地址:http://blog.chinaunix.net/uid-20665047-id-3446708.html
尤其注意的是STM32的USB一次传输最高的字节数据为64字节
USB的通讯协议:http://blog.csdn.net/myarrow/article/details/8484113
尤其注意的是
状态阶段:用来表示整个传输的过程已完全结束。
状态阶段传输的方向必须与数据阶段的方向相反,即原来是IN令牌封包,这个阶段应为OUT令牌封包;反之,原来是OUT令牌封包,这个阶段应为IN令牌封包。
对于【控制读取】而言,主机会送出OUT令牌封包,其后再跟着0长度的DATA1封包。而此时,设备也会做出相对应的动作,送ACK握手封包、NAK握手封包或STALL握手封包。
相对地对于【控制写入】传输,主机会送出IN令牌封包,然后设备送出表示完成状态阶段的0长度的DATA1封包,主机再做出相对应的动作:送ACK握手封包、NAK握手封包或STALL握手封包。
以后会继续补充,
STM32的USB 使用中断方式传输时,可以从中断来判断是否数据发送完毕,防止数据丢失。