jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1220回复:2

请教D12代码中的一点问题(关于OUT端点代码)

楼主#
更多 发布于:2004-04-03 14:59
//主端点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);//读取双缓冲区数据
}
    请问这段代码中,为什么用D12_ReadEndpoint读两次?在什么情况下需要读两次?在使用中需要注意什么?
    先谢过诸大侠。
whmjack
驱动小牛
驱动小牛
  • 注册日期2003-09-17
  • 最后登录2007-04-26
  • 粉丝0
  • 关注0
  • 积分290分
  • 威望29点
  • 贡献值0点
  • 好评度29点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-04-03 15:51
因为d12的主端点有两个缓冲区,假如满了(epstatus == 0x60)就得读两次。
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-04-03 15:53
因为d12的主端点有两个缓冲区,假如满了(epstatus == 0x60)就得读两次。

谢谢啊,那这样不就冲掉了数据(只有最后读的才有用)?
游客

返回顶部