有没有做过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
1楼-- · 2019-10-16 06:13
这样的话,我又有问题了,触摸屏怎么知道它的USB HOST分辨率是多少
apple5555
2楼-- · 2019-10-16 09:37
我很蛋疼的,为了验证这计算公式去测数据,如下是我所测试的数据
STM32 发送X值范围    反映在屏幕的X坐标值        相差
0x0100-0x0107          9                                        7
0x0108-0x011f          10                                        23
0x0120-0x0137         11                                        23
0x0138-0x014f          12                                        23

这组数据反映的,跟我所想的计算公式有误差,不理解这误差代表什么意思

一周热门 更多>