龙空技术网

模拟USB鼠标

APPLE频道 531

前言:

此时咱们对“单片机控制鼠标移动”可能比较关怀,我们都想要了解一些“单片机控制鼠标移动”的相关内容。那么小编同时在网络上收集了一些对于“单片机控制鼠标移动””的相关内容,希望小伙伴们能喜欢,我们快快来了解一下吧!

一、前言

  今天看到B站视频中,别的UP主 展示了 STM32制作鼠标的过程,在一些实验中,我也需要能够自动控制鼠标和键盘。下面,就对这个功能进行测试。也为今后的应用提供经验。

二、制作电路

  电路图非常简单,因为仅仅测试它的鼠标基本功能。所以在这里只是增加了一个USB端口。通过单面布线,使用一分钟制版方法得到了测试电路板。实验电路制作的还算可以,只是有一根USB线好像要断了。使用一分钟制版方法,重新再制作一块实验板。这次所有的引线都正常。一分钟制板方法使得电路板的制作就像打印纸张一样方便。

▲ 图1.2.1 测试电路原理图

▲ 图1.2.2 测试电路PCB

三、焊接调试

  电路比较简单,焊接也相对容易。单片机使用热风枪焊锡,可以看到单片机管脚可以自动对齐焊盘。在电路中,最细的线的宽度为 7 mil。可以在两个焊盘之间过两根引线。

四、软件测试

  使用 CubeMX 配置单片机的 HID 功能。首先,选择USB 设备的功能。然后,在下面的软件配置中,设置 USB 的功能为 HID。这样,单片机便可以模拟鼠标和键盘了。接下来,在需要控制的软件中,引入头文件。主要是 USB_DEVICE,以及 USB_HID两个头文件。在下面,声明外部变量 USB Device FS。通过发送四个字节的数据,来声明鼠标的按键动作,以及移动的参数。将这四个字节通过 Send Report 函数发送,计算机变可以进行 鼠标的相应动作。这部分的简单说明可以参考网络文章。其中关于四个自己的定义,这里给出了简要的说明。

  发送鼠标移动指令,鼠标立即执行。发送鼠标按键,则需要在发送按键之后,等待大约 15毫秒之后,再发送一个空的数据包。这样便可以模拟一个鼠标按键的过程。下面让我们来测试一下。

  这里通过串口发送一个指令,单片机接收到指令之后,便通过USB 产生一个鼠标左键按动的过程。这验证了刚才简单的发送协议的效果。通过串口控制 单片机发送鼠标移动的指令,效果也非常好。由此验证了单片机控制鼠标的功能。

※总  结 ※

  本文测试了基于F103的USB端口,产生鼠标动作的功能。在后面,再检验一下F103制作USB键盘的功能。

参考资料

[1]

? ? ? ? ? ? , , ?:

[2]

教你STM32做USB鼠标、键盘:

标签: #单片机控制鼠标移动