版块
论坛
喜欢
话题
应用
搜索
登录
注册
krise的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=95388
关于读d12缓冲区的问题
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)
回复
krise
加关注
写私信
0
关注
0
粉丝
26
帖子
返回顶部