USB CDC收发速度问题
使用,打狗棒 STC8H8K64U 核心功能学习板,最近usb库,stc8h_cdc_xdata_query_demo#include "stc8h.h"
#include "stc32_stc8_usb.h"
void main()
{
P_SW2 |= 0x80;
P0M1 = 0x00; P0M0 = 0x00;
P1M1 = 0x00; P1M0 = 0x00;
P2M1 = 0x00; P2M0 = 0x00;
P3M1 = 0x00; P3M0 = 0x00;
P4M1 = 0x00; P4M0 = 0x00;
P5M1 = 0x00; P5M0 = 0x00;
P6M1 = 0x00; P6M0 = 0x00;
P7M1 = 0x00; P7M0 = 0x00;
usb_init(); //USB CDC 接口配置
EA = 1;
while (1)
{
if (bUsbOutReady)
{
USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
usb_OUT_done();
}
}
}
测试,收发速度很慢,哪里不对?图片显示是30秒的数据
什么30秒?
ercircle 发表于 2025-12-25 10:18
什么30秒?
计时30秒,只收发25803字节 zanjun 发表于 2025-12-25 10:20
计时30秒,只收发25803字节
你的发送速度只有 9B/ms
增加发送内容,至少一包64字节
ercircle 发表于 2025-12-25 10:26
你的发送速度只有 9B/ms
增加发送内容,至少一包64字节
谢谢回复,每毫秒9字节,每秒理论上=9000字节,30秒=270000字节,
是不是,当发送字节数小于64时,会等待凑齐64字节,一起发送
补充,我不是测试单位时间收发的最大字节数,我想测试最大响应速度,就是单位时间里主机一发一收的最大频率。
zanjun 发表于 2025-12-25 10:31
谢谢回复,每毫秒9字节,每秒理论上=9000字节,30秒=270000字节,
是不是,当发送字节数小于64时,会等待 ...
BULK传输不用等
INT传输一般补零
USB原理及实战一-USB-STC单片机教学视频 国芯人工智能技术交流网站 - AI32位8051交流社区
USB全速设备1ms一个sof,一般最快也要等下一个sof
测试收发频率要看usb抓包或逻辑分析仪抓包,串口工具不好测的:
ercircle 发表于 2025-12-25 10:43
BULK传输不用等
INT传输一般补零
再次谢谢,是不是串口助手发送速度不行? zanjun 发表于 2025-12-25 11:01
再次谢谢,是不是串口助手发送速度不行?
不一定是工具
系统本身还有串口收发缓冲区都有影响:
https://www.stcaimcu.com/forum.php?mod=redirect&goto=findpost&ptid=18758&pid=173815
页:
[1]
2