有没有做过STM32的USB虚拟触摸设备

2019-10-15 03:49发布

本帖最后由 apple5555 于 2017-2-10 16:28 编辑

一开始找了不少USB鼠标,键盘例子代码,HID描述详解,当自己要写出多点触摸屏的HID报告描述时就蒙了,资料相当地少。

经过几天的各种摸爬滚打,终于把STM32F103C8的USB被电脑识别出多点触摸设备,现在又被一个问题卡住,发现发送触摸的X,Y坐标要用某种算法算出来的才行,比如我的笔记本屏幕分辨率是1366×768,我发送屏幕坐标(788,381),十六进制(0x0314, 0x17d),直接发送这两个数据是不对的,实际上要发送(0x4a33, 0x3f81)才是正确的,我才发现它是有某种算法,但我网上找不到这个算法的原型,但我能猜到其中一半,比如我发送0x0100, 0x0000,反映在屏幕坐标是(9,0),我猜屏幕X坐标是由1366 / 0x7f * 0x01计算得来的,但如果要触点在(13,0)位置,就不知道怎么计算了。我理解为这种算法是为了让触摸屏兼容所有不同尺寸的显示屏而设计的,网上没找到这部分资料,所以我想把问题挂上去碰碰运气。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
apple5555
2019-10-15 19:12
本帖最后由 apple5555 于 2017-2-10 16:26 编辑
ExiBQ 发表于 2017-2-10 16:10
试试发送(0x0138,0)
应该是(13,0)或者(14,0)

我是用第三方软件测触点坐标的,显示(12,0),我刚刚有个想法,如果它把屏幕宽度1366平均分成1366 / 128 即每10个像素点为一段,(余数86不知道会怎么处理),每一段的每一个像素点对应计算机的值就是256 / 10 (同样余数也不知道怎么处理),等会我再测试

一周热门 更多>