增加了按键抬起检测,但是状况还是一样的。
int main(void)
{
__IO uint8_t keyold = 0;
Set_System();
USB_Interrupts_Config();
Set_USBClock();
USB_Init();
delay_ms(2000);
keyold = ((GPIO_ReadInputData(GPIOB)>>6) & 0x0F);
printf("keyold = %x\r\n",keyold);
while (1)
{
delay_ms(100);
if (bDeviceState == CONFIGURED)
{
if ((JoyState() != 0) && (PrevXferComplete))
{
keyold = ((GPIO_ReadInputData(GPIOB)>>6) & 0x0F);
UsbDevice_Send(JoyState());
}
if (keyold != ((GPIO_ReadInputData(GPIOB)>>6) & 0x0F))
{
UsbDevice_Send(0);
}
}
}
}
|