资源简介
arduino自带的鼠标库有坐标限制,坐标单位无法对应屏幕像素,把此库放在arduino库中即可使用,使用方法基本相同,初始化时输入屏幕的分辨率。如果出现找不到HID.h等提示,请下载最新版的arduino。
代码片段和文件信息
#include “AbsMouse.h“
#if defined(_USING_HID)
static const uint8_t HID_REPORT_DEscriptOR[] PROGMEM = {
0x05 0x01 // Usage Page (Generic Desktop Ctrls)
0x09 0x02 // Usage (Mouse)
0xA1 0x01 // Collection (Application)
0x09 0x01 // Usage (Pointer)
0xA1 0x00 // Collection (Physical)
0x85 0x01 // Report ID (1)
0x05 0x09 // Usage Page (Button)
0x19 0x01 // Usage Minimum (0x01)
0x29 0x03 // Usage Maximum (0x03)
0x15 0x00 // Logical Minimum (0)
0x25 0x01 // Logical Maximum (1)
0x95 0x03 // Report Count (3)
0x75 0x01 // Report Size (1)
0x81 0x02 // Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
0x95 0x01 // Report Count (1)
0x75 0x05 // Report Size (5)
0x81 0x03 // Input (ConstVarAbsNo WrapLinearPreferred StateNo Null Position)
0x05 0x01 // Usage Page (Generic Desktop Ctrls)
0x09 0x30 // Usage (X)
0x09 0x31 // Usage (Y)
0x16 0x00 0x00 // Logical Minimum (0)
0x26 0xFF 0x7F // Logical Maximum (32767)
0x36 0x00 0x00 // Physical Minimum (0)
0x46 0xFF 0x7F // Physical Maximum (32767)
0x75 0x10 // Report Size (16)
0x95 0x02 // Report Count (2)
0x81 0x02 // Input (DataVarAbsNo WrapLinearPreferred StateNo Null Position)
0xC0 // End Collection
0xC0 // End Collection
};
AbsMouse_::AbsMouse_(void) : _buttons(0) _x(0) _y(0)
{
static HIDSubDescriptor descriptorNode(HID_REPORT_DEscriptOR sizeof(HID_REPORT_DEscriptOR));
HID().AppendDescriptor(&descriptorNode);
}
void AbsMouse_::init(uint16_t width uint16_t height bool autoReport)
{
_width = width;
_height = height;
_autoReport = autoReport;
}
void AbsMouse_::report(void)
{
uint8_t buffer[5];
buffer[0] = _buttons;
buffer[1] = _x & 0xFF;
buffer[2] = (_x >> 8) & 0xFF;
buffer[3] = _y & 0xFF;
buffer[4] = (_y >> 8) & 0xFF;
HID().SendReport(1 buffer 5);
}
void AbsMouse_::move(uint16_t x uint16_t y)
{
_x = (uint16_t) ((32767l * ((uint32_t) x)) / _width);
_y = (uint16_t) ((32767l * ((uint32_t) y)) / _height);
if (_autoReport) {
report();
}
}
void AbsMouse_::press(uint8_t button)
{
_buttons |= button;
if (_autoReport) {
report();
}
}
void AbsMouse_::release(uint8_t button)
{
_buttons &= ~button;
if (_autoReport) {
report();
}
}
AbsMouse_ AbsMouse;
#endif
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-02-09 14:59 AbsMouse\
目录 0 2017-11-24 05:48 AbsMouse\absmouse-master\
文件 207 2017-11-24 05:48 AbsMouse\absmouse-master\keywords.txt
文件 363 2017-11-24 05:48 AbsMouse\absmouse-master\library.properties
文件 763 2017-11-24 05:48 AbsMouse\absmouse-master\LICENSE
文件 343 2017-11-24 05:48 AbsMouse\absmouse-master\README.md
目录 0 2017-11-24 05:48 AbsMouse\absmouse-master\src\
文件 2566 2017-11-24 05:48 AbsMouse\absmouse-master\src\AbsMouse.cpp
文件 654 2017-11-24 05:48 AbsMouse\absmouse-master\src\AbsMouse.h
目录 0 2018-02-09 14:59 AbsMouse\AbsMouseDemo\
文件 235 2018-02-09 14:58 AbsMouse\AbsMouseDemo\AbsMouseDemo.ino
- 上一篇:如何用wordpress 做CMS 系统
- 下一篇:STM32 hx711电子称程序
相关资源
- labview usb数据采集
- 74LS47驱动7段数码管实验
- usbser.sys和mdmcpq.PNF和mdmcpq.inf还有另一
- 周立功USBCAN二次开发套件库-供vc开发
- usb a型封装
- 自动计算mpu6050的偏移量MPU6050_calibra
- XLoader hex文件
- 飞凌FL2440 Win7 64Bit USB驱动
- arduino-uno-r3 电路图
- xilinx usb器驱动
- GL857LusbSDhub+
- usb writer
- LabView与USB接口相机的连接方法
- AD USB封装库
- FE2.1 7端口USB hub全套制板资料
- STM32如何通过USB转串口线程序
- Windows 10_MTK VCOM USB Preloader Drivers.zip
- 颜色传感器ARDUINO代码
- PS2手柄 - arduino版本例程
- RFID.h RC522
- linux多串口通信,usb-can控制八个电机
- 适合初学者借鉴的arduino智能小车代码
- CH340USB转串口芯片mac os驱动程序
- libusb0.dll
- FlashTool STM32F103ZET6通过USB串口烧写
- arduino uno 控制二自由度舵机云台
- 我的毕业设计:USB数据采集系统
- USB设备过滤驱动[Src+Bin]
- USB使用记录清除工具
- USB Serial Port win7 64/32 驱动
评论
共有 条评论