查看: 2307  |  回复: 0
基于CH9329 快速开发一个USB HID虚拟键盘鼠标
FlexLua
1
主题
0
回复
发表于2024-05-10 13:54:34 | ip属地:福建 | 显示全部楼层
1# 电梯直达



CH9329 USB 虚拟键盘鼠标

本文章参考 FlexLua 官网 ,基于 FlexLua 脱离复杂单片机C开发正逐渐成为一种快速高效的 IoT 硬件开发方式。让小白即使不懂单片机开发也可很容易用FlexLua零门槛开发各种 IoT 硬件。

一、介绍

CH9329芯片可以通过USB口模拟成鼠标和键盘来控制电脑(包括Win,Mac,Androiod),这样我们就可以在不用开发PC软件的情况下通过一个简单的硬件来实现对各种电脑的自动化控制,甚至通过接上4G模块来实现远程控制本地电脑的目的。

材料清单:

•          

CH9329 模块

 


二、相关库函数介绍


--配置CH9329开始工作



LIB_CH9329Config()



--将鼠标光标移至屏幕的指定位置,并实现鼠标左键或右键的单击双击操作



LIB_CH9329_MoveMouse()



--模拟各种按键操作,以及各种复杂的组合按键操作



LIB_CH9329KbdSend()



三、接线图

 

接线实物图:

 

四、鼠标功能介绍

4.1 实现功能介绍

模拟鼠标操作,将鼠标光标移动到电脑屏幕上坐标为(100,100)的位置,并右键单击一下鼠标。


4.2、完整代码


--设置CH9329模块占用TX0、RX0引脚,屏幕分辨率1920*1080
LIB_CH9329Config("UART0",1920,1080)
--开始大循环
while(GC(1) == true)
do
   --每隔5秒让鼠标移动到屏幕上绝对坐标为(100,100)的位置,右击一下鼠标右键
   --如果需要实现左键双击动作,请将RIGHT改为LEFT,SINGLE改为DOUBLE
   --Win,Mac电脑用ABSOLUTE模式即可,一部分安卓电脑需要用RELATIVE模式
   LIB_CH9329_MoveMouse("ABSOLUTE", 100, 100,"RIGHT","SINGLE")
   LIB_DelayMs(5000)  
end


如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。


4.3 代码演示结果

我们可以看到在电脑屏幕上,每隔5秒会会在屏幕的(100,100)位置处弹出鼠标右键快捷菜单。

 


五、按键功能介绍

5.1 实现功能介绍

将Core通过USB线连接电脑后,每隔5秒Core会模拟如下的一系列按键动作:

1.        win+r,唤出“运行”对话框

2.        n o t e p a d ,输入"notepad"并回车,唤出记事本文本

3.        n i h a o ,在记事本输入"nihao"文本。


5.2 完整代码

下面代码里用到的所有键盘码请在本教程最后的键盘码表格中查询

--设置CH9329模块占用TX0、RX0引脚,屏幕分辨率1920*1080
LIB_CH9329Config("UART0",1920,1080)
--模拟按下WIN+R键动作,调出运行对话框
tab0 = {0x08,0x15,0x00,0x00,0x00,0x00,0x00}
--按下N O T EP A
tab1 = {0x00,0x11,0x12,0x17,0x08,0x13,0x04}
--按下D 和 Enter
tab2 = {0x00,0x07,0x58,0x00,0x00,0x00,0x00}
--按下N I H AO
tab3 = {0x00,0x11,0x0C,0x0B,0x04,0x12,0x00}
--开始大循环
while(GC(1) == true)
do
   --每隔5秒发送一次按键操作流程
   LIB_CH9329KbdSend(tab0)
   LIB_DelayMs(200)
   LIB_CH9329KbdSend(tab1)
   LIB_DelayMs(50)
   LIB_CH9329KbdSend(tab2)
   LIB_DelayMs(500)
   LIB_CH9329KbdSend(tab3)
   LIB_DelayMs(5000)  
end


如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。


5.3 代码演示结果

我们可以看到在电脑屏幕上,每隔5秒会弹出一个新的记事本文件,并在文件第一行自动打出“nihao”字样。

 



5.4 键盘码表(供参考)

 

 

 













主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部