用STM32CubeMX自动生成stm32f103 usb cdc例程,实现将从串口接收到的数据再发送给串口的功能。结果发现一次最多只能发送63个字节,发64个字节就会一直攒够4096个字节一起发送到串口上,超过64个(比如65个)就会出现发着发着就卡死的情况。
例程中几处配置如下:
usbd_cdc_if.c
#define APP_RX_DATA_SIZE 512
#define APP_TX_DATA_SIZE 4096
usbd_conf.h(这个文件没改)
/*---------- -----------*/
#define USBD_MAX_NUM_INTERFACES 1
/*---------- -----------*/
#define USBD_MAX_NUM_CONFIGURATION 1
/*---------- -----------*/
#define USBD_MAX_STR_DESC_SIZ 512
/*---------- -----------*/
#define USBD_SUPPORT_USER_STRING 0
/*---------- -----------*/
#define USBD_DEBUG_LEVEL 0
/*---------- -----------*/
#define USBD_SELF_POWERED 1
/*---------- -----------*/
#define USBD_CDC_INTERVAL 1000
/*---------- -----------*/
#define MAX_STATIC_ALLOC_SIZE 512
usbd_def.h(这个文件也没改,是不是这个文件中的64决定了最大只能发64个字节)
#define USB_HS_MAX_PACKET_SIZE 512
#define USB_FS_MAX_PACKET_SIZE 64
#define USB_MAX_EP0_SIZE 64
请大神们帮忙研究研究吧,怎样才能实现2048个字节内任意首发功能。现在只能实现63个字节内任意收发
|