USB鼠标可以识别,但收不到数据

2019-07-21 04:10发布

移植了原子哥综合例程的USB相关程序,U盘可以正常识别并读取文件,但设置为HID模式可以识别鼠标,打印信息如下:

检测到USB设备插入!
复位设备...
低速(LS)USB设备!
VID: 093Ah
PID: 2510h
从机地址分配成功!
HID 设备!
Manufacturer: PixArt
Product: USB Optical Mouse
Serial Number: N/A
设备枚举完成!

跳过用户确认步骤!
检测到鼠标


void USR_MOUSE_ProcessData(HID_MOUSE_Data_TypeDef *data)
{  
static signed short x,y,z; 
GUI_PID_STATE State;

if(USBFirstInsertFlag)//第一次插入,将数据清零
{
USBFirstInsertFlag=0;
x=y=z=0;
}
x+=(signed char)data->x;
if(x>LCD_XSIZE)x=LCD_XSIZE-1;
if(x<0)x=0;
y+=data->y;
if(y>LCD_YSIZE)y=LCD_YSIZE-1;
if(y<0)y=0;
z+=(signed char)data->z;
if(z>9999)z=9999;
if(z<-9999)z=-9999;

State.x = x;
State.y = y;
State.Pressed = 0;
if (data->button&0X01) 
{
State.Pressed |= 1; /* Set bit 0 if left button is pressed */
}
else if ((data->button&0X03)==0X02) 
{
State.Pressed |= 2; /* Set bit 1 if right button is pressed */
}
GUI_MOUSE_StoreState(&State);
printf("x:%d,y:%d,z:%d ",x,y,z);


但是几乎都不会进上面的函数,偶尔会执行一次,请教原子哥可能会是什么原因?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。