CH552的端点0是否可以设置为64字节?

设备描述符里面的第8个字节.bMaxPacketSize0,看了很多Demo都是设置为8字节。

CH554.h头文件里面定义的DEFAULT_ENDP0_SIZE也是8。

是否可以设置为64呢?如果设置为64字节,缓冲区要设置64字节还是64+2=66字节呢?

下面的缓冲区分配,如果要66字节就和端点1的重复了,是否需要将端点1缓冲区后移?

UINT8X Ep0Buffer[0x40] _at_ 0x0000;     // 端点0 OUT & IN缓冲区,必须是偶地址

UINT8X Ep1Buffer[0x40] _at_ 0x0040;     // 端点1 发送缓冲区


image.png

端点0可以配置成64字节的长度,缓冲区长度定义成64即可。

UINT8X Ep0Buffer[0x40] _at_ 0x0000;     // 端点0 OUT & IN缓冲区,必须是偶地址

UINT8X Ep1Buffer[0x40] _at_ 0x0040;     // 端点1 发送缓冲区


image.png

举例:当设计端点1的最大长度为8字节(端点0能力是64字节,根据需要可以改)的时候,缓冲区长度需要配置成8+2=10字节

        端点1根据通讯双方约定的最大包长度是32字节的时候,长度32+2=34字节

        端点1根据通讯双方约定的最大包长度是63字节的时候,63+2=65,65大于最大长度64,长度写成64字节

        端点1根据通讯双方约定的最大包长度是64字节的时候,长度直接等于64字节



只有登录才能回复,可以选择微信账号登录