火焰纹章觉醒魔战士:关于usb2.0芯片68013

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 14:20:32
初始化或者每次改变参数都从管道读回的第一包数都是没用的,我用的时候长度该无效数据长度都不固定,不知道那里设置有问题。这种无效数据是正常的,但是长度如何确定呢?在那里设置?
比如用管道6IN,初始化时程序:
SYNCDELAY;
EP2BCL = 0x80; SYNCDELAY; EP2BCL = 0x80;
SYNCDELAY; EP4BCL = 0x80; SYNCDELAY;
EP4BCL = 0x80;
SYNCDELAY;
EP6BCH = 0x02; SYNCDELAY;
EP6BCH = 0x02;

SYNCDELAY;
EP6BCL = 0x00;
SYNCDELAY;
EP6BCL = 0x00; SYNCDELAY;
EP8BCL = 0x80;
SYNCDELAY;
EP8BCL = 0x80;
函数TD_Poll每次读取512个字节放在EP6FIFOBUF后,
EP6BCH = 0x02; // arm EP6IN
SYNCDELAY;
EP6BCL = 0x00; // arm EP6IN
SYNCDELAY;

在中断中直接读:
void ISR_Ep6inout(void) interrupt 0
{
EA = 0;
// clear the IRQ
EZUSB_IRQ_CLEAR();
EPIRQ = 0X40;
EA = 1;
}

这种问题还是去www.csdn.net问问吧