本帖最后由 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)位置,就不知道怎么计算了。我理解为这种算法是为了让触摸屏兼容所有不同尺寸的显示屏而设计的,网上没找到这部分资料,所以我想把问题挂上去碰碰运气。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
按照机器计算,应该是10才对,余数86
试试发送(0x0138,0)
应该是(13,0)或者(14,0)
我是用第三方软件测触点坐标的,显示(12,0),我刚刚有个想法,如果它把屏幕宽度1366平均分成1366 / 128 即每10个像素点为一段,(余数86不知道会怎么处理),每一段的每一个像素点对应计算机的值就是256 / 10 (同样余数也不知道怎么处理),等会我再测试
多点触摸屏分辨率为什么不是0x8000(32768)呢?
对应屏幕的像素就是屏幕长(1366)x(发送的值)/32768呀
一周热门 更多>