我们公司在做身份证读卡器,有蓝牙型,有USB型。
现在USB型有点问题。读取速度慢的时候没问题,
快了就会出现丢包现象。
USB_Configurage(); //开启USB时钟 USB_Interrupts_Config(); //设置中断优先级2.0
Set_USBClock(); //USB时钟设置
USB_Init(); //USB接口初始化
//IWDG_Feed();
USB_Send_Buf[0]=0xaa;
USB_Send_Buf[1]=0xaa;
USB_Send_Buf[2]=0xaa;
USB_Send_Buf[3]=0x96;
USB_Send_Buf[4]=0x69;
USB_Send_Buf[5]=0x00;
USB_Send_Buf[6]=0x03;
USB_Send_Buf[7]=0x20;
USB_Send_Buf[8]=0x01;
USB_Send_Buf[9]=0x23;
for(i=0;i<1000000;i++);
for(i=0;i<1000000;i++);
for(i=0;i<1000000;i++);
for(i=0;i<1000000;i++);
//for(i=0;i<1000000;i++);
for(j=0;j<100;j++)
{
EP1_SendData(USB_Send_Buf);
for(i=0;i<100000;i++);
}
部分程序如上。
当for(i=0;i<1000000;i++);时,数据一次也不丢。
当for(i=0;i<100000;i++);时,时间缩小10倍,数据丢的很严重,一半多。
见图:
数据发送100次,只收到48次。
请高手指教,谢谢!
此帖出自
小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
原来配置描述符里最大包长为48个字节,我修改为256以后,快了不少。
我试了,257就不对了。
是不是256是上限了?
还有一个问题,有人问你说发送数据时,要判断发送完成接着发下一帧数据。
请问如何判断何时发完?谢谢!
一周热门 更多>