阅读:1527回复:6
读取双缓冲区数据的问题,希望大侠解惑!!万分感谢
//主端点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满是指所选端点还是指主端点,谢谢!!! |
|
沙发#
发布于:2004-07-25 08:01
竟然没人回复我的帖子,真郁闷!!各位大侠知道的话告诉小弟!!
|
|
板凳#
发布于:2004-07-25 16:08
今天一直在看这个帖子,各位大侠帮帮我吧!!!!
|
|
地板#
发布于:2004-07-25 17:11
拜托,你能不能问问题问得明白点,我看你的问题就看得一头雾水.
主端点是什么?你用的是什么芯片? |
|
|
地下室#
发布于:2004-07-25 22:33
我用的芯片是PIDUSBD12主端点,就是端点2.ReadEndpointStatus()函数读端点状态.if (epstatus == 0x60)成立时,缓冲区0与缓冲区1.又失去一机会,都怪我没说清楚.
|
|
5楼#
发布于:2004-07-26 09:02
我不清楚D12芯片.
你说MCU的缓存区?难道你读过来的数据要先经过MCU再到D12里去吗?为什么?状态缓存区(什么东西?)满应该是指你所读的端点的对应的 缓存区,它可能是你所索引的端点(在读之前,你应当指定读哪个端点的数据吧?),也可能不是你所索引的端点(在写数据时,由USBD根据你的CONFIG选择向哪个端点写.). |
|
|
6楼#
发布于:2004-07-26 23:37
读取数据不经过MCU缓冲区,是不是就是DMA的传输方式?
|
|