阅读:1198回复:2
usb的bulk传输问题!
我想问一下各位侠:用户应用程序发出读数据命令,使用IOCTL_EZUSB_BULK_READ命令从IN2BUF读数据时,是不是产生ISR_Ep2in中断,我的数据是由PA口和PB口输入的,那么我是不是要在ISR_Ep2in中断服务程序中将由PA口和PB口传入IN2BUF?可为什么我每次去读IN2BUF的时候,都会死机,原因应该是数据还没有写入IN2BUF,为什么?难道不应该在ISR_Ep2in中断服务程序中将由PA口和PB口传入IN2BUF?请高手指点一二!
|
|
沙发#
发布于:2003-09-17 10:30
衷心感谢jinghuiren前辈的指点,我想可能是我的应用程序的问题,看来还需要好好查查资料,才能解决,不过我相信只要努力,问题一定会解决的,再次对jinghuiren前辈表示感谢!
|
|
板凳#
发布于:2003-09-13 11:46
你打开该中断了吗?固件里的下面这一行是打开中断用的。
USBIE |= bmSUDAV | bmSUTOK | bmSUSP | bmURES | bmHSGRANT; // Enable selected interrupts 都会死机好像比较严重,会不会是你应用程序或驱动出了问题,及时你读不到数据也不应该死机的,最多pending而已,也就是打不开设备了,断一次电就可以重新使用了 你可以在你说的isr函数里把数据写入buf,也可以在td_poll()函数里用查询状态标志的方式进行,例如: if(!(EP2468STAT & bmEP2EMPTY))//查询端点2是否有数据 只是这种情况你有可能会丢失部分数据,还有你从pa和pb口送数据要判断端点状况,否则数据会丢失的 |
|