在ST提供的Virtual COM Port 的Demo中关于USB缓冲区的定义如下:
#define EP_NUM (4)
#define BTABLE_ADDRESS (0x00)
#define ENDP0_RXADDR (0x40)
#define ENDP0_TXADDR (0x80)
#define ENDP1_TXADDR (0xC0)
#define ENDP2_TXADDR (0x100)
#define ENDP3_RXADDR (0x110)
问题:
其中使用了4个端点,每个端点占用8个字节的控制寄存器,
共需要 0x20 个空间,那么为了紧凑一些,可否定义变为:
#define ENDP0_RXADDR (0x20)
#define ENDP0_TXADDR (0x60)
#define ENDP1_TXADDR (0xA0)
#define ENDP2_TXADDR (0xE0)
#define ENDP3_RXADDR (0xF0)
或者:
#define EP_NUM (4)
#define BTABLE_ADDRESS (0x00)
#define ENDP0_RXADDR (EP_NUM *0x08 )
#define ENDP0_TXADDR (ENDP0_RXADDR + 0x40) |