blackdream2
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2006-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1527回复:6

读取双缓冲区数据的问题,希望大侠解惑!!万分感谢

楼主#
更多 发布于:2004-07-24 21:44
//主端点IN控制
void main_rxdone(void)
{
unsigned char len,epstatus;

D12_ReadLastTransactionStatus(4); //清中断标志位

//接收数据
len = D12_ReadEndpoint(4, 64, EpBuf);
epstatus=D12_ReadEndpointStatus(4);
epstatus &= 0x60;
if (epstatus == 0x60)
len = D12_ReadEndpoint(4, 64, EpBuf);//读取双缓冲区数据
}

假如if (epstatus == 0x60)成立,那么后面读取的数据会不会覆盖了前面读取的数据,因为MCU数据缓冲区并没有改变!
还有一个问题,读取端点状态缓冲区0满,缓冲区1满是指所选端点还是指主端点,谢谢!!!
blackdream2
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2006-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-07-25 08:01
竟然没人回复我的帖子,真郁闷!!各位大侠知道的话告诉小弟!!
blackdream2
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2006-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-07-25 16:08
今天一直在看这个帖子,各位大侠帮帮我吧!!!!
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-07-25 17:11
拜托,你能不能问问题问得明白点,我看你的问题就看得一头雾水.
主端点是什么?你用的是什么芯片?
新手上路,请多关照.
blackdream2
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2006-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-07-25 22:33
我用的芯片是PIDUSBD12主端点,就是端点2.ReadEndpointStatus()函数读端点状态.if (epstatus == 0x60)成立时,缓冲区0与缓冲区1.又失去一机会,都怪我没说清楚.
metalwing
驱动中牛
驱动中牛
  • 注册日期2003-10-13
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分178分
  • 威望58点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-07-26 09:02
我不清楚D12芯片.
你说MCU的缓存区?难道你读过来的数据要先经过MCU再到D12里去吗?为什么?状态缓存区(什么东西?)满应该是指你所读的端点的对应的
缓存区,它可能是你所索引的端点(在读之前,你应当指定读哪个端点的数据吧?),也可能不是你所索引的端点(在写数据时,由USBD根据你的CONFIG选择向哪个端点写.).
新手上路,请多关照.
blackdream2
驱动牛犊
驱动牛犊
  • 注册日期2004-07-24
  • 最后登录2006-11-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-07-26 23:37
读取数据不经过MCU缓冲区,是不是就是DMA的传输方式?
游客

返回顶部