芯片名称:CH9329
(丝印同上)
通过串口发送指令数据,芯片将指令数据转化为键盘或鼠标操作行为的指令数据,并通过USB发送给被控制设备完成操作。
绝对鼠标操作串口数据帧:
【1】:鼠标按键(左键 / 中键 / 右键)
例如:
按下左键是0000 0001,即0x01
【2】和【3】:鼠标X坐标值
假设屏幕横向分辨率为SX,要移动到X位置处:由X * 4096 / SX得到后,依次为低位、高位
例如:
在横向分辨率为1280的屏幕中,移动鼠标到100的位置是100 * 4096 / 1280 = 320 = 0x0140,则【2】是0x40、【3】是0x01
【4】和【5】:鼠标Y坐标值
假设屏幕纵向分辨率为SY,要移动到Y位置处:由Y * 4096 / SY得到后,依次为低位、高位
例如:
在纵向分辨率为1280的屏幕中,移动鼠标到200的位置是200 * 4096 / 1280 = 640 = 0x0280,则【4】是0x80、【5】是0x02
【6】:滚轮滚动齿数
0x00表示无滚动
0x01 - 0x7f 为向上滚动
0x81 - 0xff 为向下滚动
例如:
向上滚动1齿为0x01(越大齿数越多)
向下滚动1齿为0xff(越小齿数越多)
【7】:前面数据的累加和
由0x0f +【1】+【2】+【3】+【4】+【5】+【6】得到数据,建议用单片机程序计算补全。
例如:在分辨率为1280*1280的屏幕中,
鼠标移动到(1 , 1)处并按下左键的完整指令数据为:0x57、0xab、0x00、0x04、0x07、0x02、0x01、0x03、0x00、0x03、0x00、0x00、0x12,此处0x12 = 0x0f + 0x01 + 0x03 + 0x00 + 0x03 + 0x00 + 0x00
鼠标移动到(1280 , 1280)处的完整指令数据为:0x57、0xab、0x00、0x04、0x07、0x02、0x00、0x00、0x10、0x00、0x10、0x00、0x0c,此处0x0c = 0x0f + 0x00 + 0x00 + 0x10 + 0x00 + 0x10 + 0x00
注意:如果不发送按键的0x00指令数据,芯片会模拟一直按着上一份指令数据发来的按键
2024/10/24最后编辑;
如有帮助求点个赞!打赏什么的也不是不行、哼……