关于CH552的USB接收缓存的疑问

在CH552手册中的关于USB端点接收缓存有如下说明:

“注:接收数据的缓冲区的长度 >= min(可能接收到的最大数据包长度 + 2字节,64字节)”,

而HID例程中的定义是:

UINT8X  Ep2Buffer[128>(2*MAX_PACKET_SIZE+4)?128:(2*MAX_PACKET_SIZE+4)] _at_ 0x0044;

手册的意思是若非0端点缓冲区的长度取最小值,不超过64字节,例程的意思却是接收和发送都要增加2个字节,且取最大值,接收缓存可以到MAX_PACKET_SIZ+2也就是66字节。

明显有矛盾啊。


/bbs/thread-66626-1.html

参考此贴


如此说来若不注意两个CRC字节的问题,有可能接收时误把发送缓存区的数据改写了。


不预留有可能收发数据会出错。


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