- 打卡等级:常住居民III
- 打卡总天数:199
- 最近打卡:2025-05-02 00:28:39
已绑定手机
金牌会员
- 积分
- 1633
|
代码是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); 呢?
|
|