1.主机向d12写数据,单片机从d12缓冲区把数据读出,在主程序中有一段查询bEPPflags.ep2_rxdone是否为1的程序,若为1则把该标志清0并读取EpBuf内容。如果去掉这段程序,直接读EpBuf内容会不会出现什么问题呢?这段程序有什么用呢?2.单片机向d12缓冲区写...
全文
回复(10) 2005-04-04 10:24 来自版块 - USB驱动开发
表情
shader如果设备一次发送128字节,而主机一次只读取64字节的话,应该会出现丢包的现象,即主机只能读到设备发送的头64字节,然后通过中断告诉设备可以继续发送了,结果设备发送了新的128字节。实际情况是不是这样呢?(2005-06-28 08:37)
jinghuiren这样呀?那么在主机读走数据并且执行了清中断标志后,d12的in缓冲区有没有被自动清空呢?实在是感谢大侠的指点! 自动清空了(2005-04-06 11:25)
krise谢谢各位的帮助!!!虽然我的问题还是没有解决,但是至少我的概念上有了进步,谢谢!以后有问题再请教各位了!(2005-04-06 10:29)
dnet008不管有没有被清空,反正你可以把后续的数据往in endpoint里面写了。(2005-04-06 09:22)
krise这样呀?那么在主机读走数据并且执行了清中断标志后,d12的in缓冲区有没有被自动清空呢?实在是感谢大侠的指点!(2005-04-05 17:23)
jinghuiren数据发送走后中断才能产生(2005-04-05 16:47)
krise这个中断是主机读走数据后才产生的么?我是在d12本来的固件程序上改的,它本来就有当这个中断产生后清中断标志位的处理,就是和你的建议中一样的处理方法,但是我收到的数据就会丢包。 我的理解是当单片机向d12的缓冲区写了数据后这个中断就会产生。 不知道我的理解对不对?主机读走数据后...(2005-04-05 14:38)
dnet008看一下这个函数的用法D12_ReadInterruptRegister,成功写了数据并被主机取走后,会有相应的中断位产生的,可以通过查询的方式来解决。 while((D12_ReadInterruptRegister() & D12_INT_ENDP2IN) != D1...(2005-04-05 12:45)
krise现在我的问题是:我的主机不能及时读出数据,因此会丢包,不知道有没有什么方法可以控制单片机向d12的写过程,使它不会覆盖d12的缓冲区造成丢包?谢谢大侠指点!!!(2005-04-05 08:49)
tottiman一般向缓冲区写的时候,若主机没有及时读走数据,前面的数据就会被后面的冲掉,所以我想在写的后面,立刻读,也许可以(2005-04-04 10:47)

返回顶部