天天看點

CH552-HID 鍵盤 滑鼠

一、準備

  1. 硬體,CH554 EVK
  2. 軟體,CH552\EVT\EXAM\USB\Device\CompositeKM.C

二、程式

  1. 主要的上報函數

    關于HID鍵盤和滑鼠的定義

    通訊格式

    程式參考

void HIDValueHandle()
{
    UINT8 i;
        i = getkey( );
        printf( "%c", (UINT8)i );
        switch(i)
        {
//滑鼠資料上傳示例
        case 'L':                                                        //左鍵
            HIDMouse[0] = 0x01;
            Enp2IntIn();
            HIDMouse[0] = 0;
            break;
        case 'R':                                                        //右鍵
            HIDMouse[0] = 0x02;
            Enp2IntIn();
			mDelaymS( 10 );	
            HIDMouse[0] = 0;											//這裡模拟松手
			Enp2IntIn();												//發資料
			
            break;
//鍵盤資料上傳示例
        case 'A':                                                         //A鍵
            FLAG = 0;
            HIDKey[2] = 0x1d;                                             //按鍵開始
            Enp1IntIn();
            HIDKey[2] = 0;                                                //按鍵結束
            while(FLAG == 0)
            {
                ;    /*等待上一包傳輸完成*/
            }
            Enp1IntIn();
            break;
        case 'P':                                                         //P鍵
            FLAG = 0;
            HIDKey[2] = 0x38;
            Enp1IntIn();
            HIDKey[2] = 0;                                                //按鍵結束
            while(FLAG == 0)
            {
                ;    /*等待上一包傳輸完成*/
            }
            Enp1IntIn();
            break;
        case 'Q':                                                         //Num Lock鍵
            FLAG = 0;
            HIDKey[2] = 0x39;
            Enp1IntIn();
            HIDKey[2] = 0;                                                //按鍵結束
            while(FLAG == 0)
            {
                ;    /*等待上一包傳輸完成*/
            }
            Enp1IntIn();
            break;
        case 'l':	//>右下移動
            HIDMouse[0] = 0x00;//向右,向下都是正方向了
            HIDMouse[1] = 0x01;//向右移動
            HIDMouse[2] = 0x01;//向下移動
            Enp2IntIn();
            
            break;
        default:                                                          //其他
            UEP1_CTRL = UEP1_CTRL & ~ MASK_UEP_T_RES | UEP_T_RES_NAK;     //預設應答NAK
            UEP2_CTRL = UEP2_CTRL & ~ MASK_UEP_T_RES | UEP_T_RES_NAK;     //預設應答NAK
            break;
        }
}
           

注意

CH552-HID 鍵盤 滑鼠

右鍵點選了,發一下松手(模拟一下)

USB