STM32关于USB控制端点4的问题


解释如下:
#define BTABLE_ADDRESS      (0x00)  //说明端点描述符表从0x00开始
每个端点描述符会占用4个uint32_t型,即16个字节
如果使用到端点4,需要将
#define ENDP0_RXADDR        (0x18)
#define ENDP0_TXADDR        (0x58)
改为
#define ENDP0_RXADDR        (0x50)  端点0-4  占用16*5=80个字节
#define ENDP0_TXADDR        (0x90)  端点0缓冲区占用字节Device_Property.MaxPacketSize=0x40;

以下端点分配需从 ENDP0_TXADDR + 0x40开始
EP1_RXBUF 等的大小根据需要自行定义,不贴出了。

#define         ENDP1_TXADDR                ((uint16_t)(0xD0))
#define         ENDP1_RXADDR                ((uint16_t)((ENDP1_TXADDR+EP1_TXBUF+1)/2*2)) //按字对齐

#define         ENDP2_TXADDR                ((uint16_t)((ENDP1_RXADDR+EP1_RXBUF+1)/2*2)) 
#define         ENDP2_RXADDR                ((uint16_t)((ENDP2_TXADDR+EP2_TXBUF+1)/2*2))

#define         ENDP3_TXADDR                ((uint16_t)((ENDP2_RXADDR+EP2_RXBUF+1)/2*2))
#define         ENDP3_RXADDR                ((uint16_t)((ENDP3_TXADDR+EP3_TXBUF+1)/2*2))

#define         ENDP4_TXADDR                ((uint16_t)((ENDP3_RXADDR+EP3_RXBUF+1)/2*2)) 
#define         ENDP4_RXADDR                ((uint16_t)((ENDP4_TXADDR+EP4_TXBUF+1)/2*2))



from:http://bbs.ic37.com/bbsview-29849.htm


猜你喜欢

转载自blog.csdn.net/imxiangzi/article/details/80054546
今日推荐