cazz_girl
驱动牛犊
驱动牛犊
  • 注册日期2003-10-27
  • 最后登录2006-10-17
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
20楼#
发布于:2003-12-19 08:25
我也觉得是驱动的问题。
我把程序改了改。
单片机断,我用定时器写数据,就是不管计算机有没有读数据,单片机一直写。
计算机断,不发deviceiocontrol命令,只是不停的readfile,
在单片机中断子程序中加个测试点,用逻辑分析仪一看。
乖乖,计算机竟然要两个多毫秒才去读一次,而单片机已经写了几次了。
搞不懂了,计算机扫描一次没有数据,要等那么长时间才再扫描吗??
大虾们,帮帮忙吧~~~
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
21楼#
发布于:2003-12-19 08:55
速度主要还是设备的问题,PC如果是2000、XP是不需要装驱动,98\\me下就下一个吧,我原来有一个,不过不记得放那里了,不过到处都有。
zkking
驱动牛犊
驱动牛犊
  • 注册日期2003-11-14
  • 最后登录2008-10-14
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
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啊
zkking
驱动牛犊
驱动牛犊
  • 注册日期2003-11-14
  • 最后登录2008-10-14
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
23楼#
发布于:2003-12-19 16:25
我现在最快只到过30kbytes而已,不用中断,每次发2次的64bytes,然后开始查询是否发送成功,如此反复100次,busbound测到过30kbytes,但是以后就出不来了?难道必须换驱动吗?

我不是做U盘,是做下位机的数据上传,所以驱动肯定是必须的,好像做U盘的都不用驱动吧
上一页 下一页
游客

返回顶部