初始化端点的第一步是把适当的值写到ADDRn_TX或ADDRn_RX寄存器中,以便USB模块能找
到要传输的数据或准备好接收数据的缓冲区。 USB_EpnR寄存器的EP_TYPE位确定端点的基本
类型, EP_KIND位确定端点的特殊特性。作为发送方,需要设置USB_EpnR寄存器的STAT_TX
位来使能端点,并配置COUNTn_TX位决定发送长度。作为接收方,需要设置STAT_RX位来使
能端点,并且设置BL_SIZE和NUM_BLOCK位,确定接收缓冲区的大小,以检测缓冲区溢出的
异常。对于非同步非双缓冲批量传输的单向端点,只需要设置一个传输方向上的寄存器。一旦
端点被使能,应用程序就不能再修改USB_EpnR寄存器的值和ADDRn_TX / ADDRn_RX,
COUNTn_TX / COUNTn_RX所在的位置,因为这些值会被硬件实时修改。当数据传输完成时,
CTR中断会产生,此时上述寄存器可以被访问,并重新使能新的传输
|