20楼#
发布于:2003-12-19 08:25
我也觉得是驱动的问题。
我把程序改了改。 单片机断,我用定时器写数据,就是不管计算机有没有读数据,单片机一直写。 计算机断,不发deviceiocontrol命令,只是不停的readfile, 在单片机中断子程序中加个测试点,用逻辑分析仪一看。 乖乖,计算机竟然要两个多毫秒才去读一次,而单片机已经写了几次了。 搞不懂了,计算机扫描一次没有数据,要等那么长时间才再扫描吗?? 大虾们,帮帮忙吧~~~ |
|
21楼#
发布于:2003-12-19 08:55
速度主要还是设备的问题,PC如果是2000、XP是不需要装驱动,98\\me下就下一个吧,我原来有一个,不过不记得放那里了,不过到处都有。
|
|
22楼#
发布于:2003-12-19 10:19
2000下不需要驱动吗?周立功还给了一个2000/xp的驱动啊!
大侠帮我看看,我的发送程序几乎就是在直接对内存操作了,没有另外的函数调用,中断也不用了,但是速度还是没有改善啊: void USB_WriteEndpoint(unsigned char * buf, unsigned char len) { unsigned char i; USB_DISABLE_INTERRUPT; *(unsigned char *)0x04000001 = 5; // 选择端点 i= *(unsigned char *)0x04000000; // 端点状态 *(unsigned char *)0x04000001 = 0xf0; // 写缓冲区命令 *(unsigned char *)0x04000000=0; // 向缓冲区填充数据 *(unsigned char *)0x04000000=len; for(i=0; i<len; i++) *(unsigned char *)0x04000000=*(buf+i); // 使缓冲区有效 *(unsigned char *)0x04000001=0xfa; } 我就是反复的调这个函数(发了三次),每次都发64bytes,中间没有任何判断,pc居然可以全部收到(用busbound观测),下位机的速度应该还行吧,处理能力到了65Mhz,60mips,不亚于低端的dsp啊 |
|
23楼#
发布于:2003-12-19 16:25
我现在最快只到过30kbytes而已,不用中断,每次发2次的64bytes,然后开始查询是否发送成功,如此反复100次,busbound测到过30kbytes,但是以后就出不来了?难道必须换驱动吗?
我不是做U盘,是做下位机的数据上传,所以驱动肯定是必须的,好像做U盘的都不用驱动吧 |
|
上一页
下一页