阅读:847回复:1
利用D12的批传输,在接收的时候一次中断要读两次为什么啊
利用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; } } } |
|
|
沙发#
发布于:2004-02-26 17:26
是不是双缓冲区啊,那么如果不用双缓冲区呢,哪里设置呢
双缓冲区好象是指对DMA操作的时候用的 对于普通的批传输是不是双缓冲区呢,不是吧,只有64个字节的数据是有效的吧,应该是这样的吧,那为什么读两次呢, 不会出现错误吗 出现错误的数据该怎么办啊 |
|
|