|
程序的效果是 按4个按键,可以让鼠标向上 向下 移动,按键触发外部中断,进入中断服务函数,执行这条语句USBD_HID_SendReport(),请问这条语句是怎么控制鼠标的呢?我改了一下buf里的值,本来两个按键一个按,光标往左,另一个往右。改了之后光标都向左了,请问怎么回事呢?我用的是107芯片,USB模块是USBOTGFS,不胜感激最重要的是这条语句怎么控制的鼠标,这个不太清楚,
- void EXTI4_IRQHandler(void)
- {
- static uint8_t buf[4]={0,0x0f,0,0};
-
- if(EXTI_GetITStatus(EXTI_Line4)!= RESET)
- {
- if(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_4)==0);
- {
- USBD_HID_SendReport (&USB_OTG_dev,
- buf,
- 4
- );
- }
- while(GPIO_ReadInputDataBit(GPIOD,GPIO_Pin_4)==0);
-
- EXTI_ClearITPendingBit(EXTI_Line4);
- }
- }
复制代码
这是手册里的内容,我的程序已经把static uint8_t *USBD_HID_GetPos (void)屏蔽掉了,我搞不清楚buf[]数组里的值,是怎么影响鼠标移动的。谢谢
- static uint8_t HID_Buffer [4];
- USBD_HID_SendReport (&USB_OTG_FS_dev,
- USBD_HID_GetPos(),
- 4);
- static uint8_t *USBD_HID_GetPos (void)
- {
- HID_Buffer[0] = 0;
- HID_Buffer[1] = GetXPos();;
- HID_Buffer[2] = GetXPos();
- HID_Buffer[3] = 0;
- return HID_Buffer;
- }
复制代码
|
|