找回密码
 立即注册
查看: 295|回复: 3

USB-CDC相关代码请教

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:199
  • 最近打卡:2025-05-02 00:28:39
已绑定手机

24

主题

345

回帖

1633

积分

金牌会员

积分
1633
发表于 2024-11-27 09:58:12 | 显示全部楼层 |阅读模式
代码是AI8H的USB-CDC例程代码
#ifdef EN_EP1OUT
void usb_out_ep1()
{
    BYTE csr;
    BYTE cnt;

    usb_write_reg(INDEX, 1);
    csr = usb_read_reg(OUTCSR1);
    if (csr & OUTSTSTL)
    {
        usb_write_reg(OUTCSR1, OUTCLRDT);
    }
    if (csr & OUTOPRDY)
    {
        cnt = usb_read_reg(OUTCOUNT1);//读出最后接收到多少字节,并赋值给cnt
        while (cnt--)
        {
            RxBuffer[RxWptr++] = usb_read_reg(FIFO1);//将FIFO1寄存器数据给到RxBuffer数组
        }
        if (RxWptr - RxRptr >= 256 - EP1OUT_SIZE)//EP1OUT_SIZE=64字节
        {
            UsbOutBusy = 1;
        }
        else
        {
            usb_write_reg(OUTCSR1, 0);
        }
    }
}
#endif

以上这段代码会进入USB中断,请问,如果是接收100字节,端点又只有64字节,是不是这个函数会进入2次中断,接收完100字节呢?
cnt = usb_read_reg(OUTCOUNT1);//读出最后接收到多少字节,并赋值给cnt     
USB库例程的stc32_stc8_usb.h里OutNumber变量是不是读取的usb_read_reg(OUTCOUNT1); 呢?


回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2025-04-30 10:59:33

25

主题

1154

回帖

2391

积分

超级版主

积分
2391
发表于 2024-11-27 10:28:56 | 显示全部楼层
【新提醒】32G12K128超级简单的USB-CDC虚拟串口应用及不停电下载(中断模式+查询模式) - USB:USB-CDC虚拟串口/就是串口,一箭双雕之USB转双串口,[鼠标+键盘]的HID复合设备 国芯技术交流网站 - AI32位8051交流社区  https://www.stcaimcu.com/forum.p ... &extra=#pid4981
STC官网:https://www.stcai.com/
QQ:2593903262
微信号:18106296598
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:423
  • 最近打卡:2025-05-01 07:10:25
已绑定手机

76

主题

4833

回帖

8343

积分

超级版主

DebugLab

积分
8343
发表于 2024-11-27 10:43:59 | 显示全部楼层
大于端点长度会被拆分,应该是进一次中断接收64字节,再进入中断接收100-64=36字节
DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:199
  • 最近打卡:2025-05-02 00:28:39
已绑定手机

24

主题

345

回帖

1633

积分

金牌会员

积分
1633
发表于 2024-11-27 11:02:24 | 显示全部楼层
Debu*** 发表于 2024-11-27 10:43
大于端点长度会被拆分,应该是进一次中断接收64字节,再进入中断接收100-64=36字节 ...

我也是这么想的,可是USB库里的OutNumber相当于例程里的那个变量呢?
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 09:03 , Processed in 0.176441 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表