kkyouking
驱动中牛
驱动中牛
  • 注册日期2004-02-23
  • 最后登录2008-02-27
  • 粉丝0
  • 关注0
  • 积分47分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:847回复:1

利用D12的批传输,在接收的时候一次中断要读两次为什么啊

楼主#
更多 发布于:2004-02-26 17:22
利用D12的批传输,在接收的时候一次中断要读两次为什么啊
void main_rxdone(void)
{
unsigned int len1;

D12_ReadLastTransactionStatus(4); /* Clear interrupt flag */

if(bNoRAM)
{
len1 = D12_ReadEndpoint(4, 64, EpBuf);
}
else
{
len1 = D12_ReadEndpoint(4, 64, MainEpBuf + oCount);
}
oCount += len1;
if(bNoRAM)
{
len1 = D12_ReadEndpoint(4, 64, EpBuf);
}
else
{
len1 = D12_ReadEndpoint(4, 64, MainEpBuf + oCount);
}
oCount += len1;

if(oCount >= ioSize)
{
if(bEPPflags.bits.dma_state == DMA_PENDING)
{
//bEPPflags.bits.setup_dma ++;
}
else
{
//bEPPflags.bits.dma_state = DMA_IDLE;
}
}

}

52+PDIUSBD12开发套件 SL811单片机读写U盘套件 www.devking.cn 联系sl811hs@yahoo.com.cn QQ 14441292
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-02-26 17:26
是不是双缓冲区啊,那么如果不用双缓冲区呢,哪里设置呢
双缓冲区好象是指对DMA操作的时候用的
对于普通的批传输是不是双缓冲区呢,不是吧,只有64个字节的数据是有效的吧,应该是这样的吧,那为什么读两次呢, 不会出现错误吗 出现错误的数据该怎么办啊
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
游客

返回顶部