打印
[其他芯片]

CH552-HID 键盘 鼠标

[复制链接]
13382|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tfqi|  楼主 | 2021-7-7 14:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

  • 硬件,CH554 EVK
  • 软件,CH552\EVT\EXAM\USB\Device\CompositeKM.C
  • 主要的上报函数




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;
        }
}


使用特权

评论回复
沙发
tfqi|  楼主 | 2021-7-7 14:47 | 只看该作者
注意

右键点击了,发一下松手(模拟一下)

使用特权

评论回复
板凳
huquanz711| | 2021-7-8 19:42 | 只看该作者
谢谢分享经验

使用特权

评论回复
地板
lidi911| | 2021-7-14 08:43 | 只看该作者
可以做个键盘模拟游戏

使用特权

评论回复
5
单片小菜| | 2021-7-14 14:57 | 只看该作者
UEP1_CTRL = UEP1_CTRL & ~ MASK_UEP_T_RES | UEP_T_RES_NAK;  这句话可以帮忙解释一下吗?

使用特权

评论回复
6
自己造声卡| | 2021-7-14 16:26 | 只看该作者
是否可以支持键盘和鼠标一起用呢?

使用特权

评论回复
评论
WCHTech2 2021-7-15 09:29 回复TA
可以,官网对应型号的EVT里有复合键盘鼠标的例程 
7
里面有晴雨| | 2021-7-16 09:10 | 只看该作者
如果键盘和硬盘在一起,该怎么设置描述符呢?

使用特权

评论回复
8
SoldierJazz| | 2021-10-6 22:47 | 只看该作者
感兴趣的也可以直接选用串口转键盘/鼠标/自定义HID类设备的转接芯片CH9329,可以同时支持三种设备,也支持单独转接某一种设备。

使用特权

评论回复
9
weifeng90| | 2021-10-7 10:04 | 只看该作者
可以试试看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

56

主题

3316

帖子

4

粉丝