阅读:1039回复:0
d12的收发数据困惑!!!!
各位大侠好!!我现在也在用51和d12,硬件连线现在基本没有什么问题了,可是当我用他的调试程序进行写及out发数,下设51接受的功能时,用它原来的51程序可以连续发送,可是我将其改了后,就只能发一次就死了.这是为什么啊?用的ep4与ep5,(原板好像是含什么dma,现在我51直接当一般的处理有没有影响啊??硬件连接没接dma的一些请求线等)
原中断程序是这样的: void main_rxdone(void) { unsigned char len,j; D12_ReadLastTransactionStatus(4); if(bNoRAM) len = D12_ReadEndpoint(4, 64, EpBuf + ioCount); else len = D12_ReadEndpoint(4, 64, MainEpBuf + ioCount); ioCount += len; if(ioCount >= ioSize) { if(bEPPflags.bits.dma_state == DMA_PENDING) bEPPflags.bits.setup_dma ++; else bEPPflags.bits.dma_state = DMA_IDLE; } }这样上位机就能不停的发out. 我将其改为: void main_rxdone(void) { unsigned char len,j; D12_ReadLastTransactionStatus(4); D12_ReadEndpoint(4, 64, EpBuf); } 这样为啥就不行呢???请指教,谢谢了!!!!! 还有就是我的in操作也一样. |
|