让Windows自动为你的设备安装串口鼠标驱动
偶然发现,如果你想自己做一些好玩的PC辅助设备,又不想写底层驱动,甚至不愿意用SendMessage控制鼠标,那么你还有一条路可以走,就是让Windows自动为你的设备安装串口鼠标驱动。
我做了个单片机系统,带USB转串口,今天,我在单片机运行着向串口发数据的程序时,将其USB插入PC上一个以前未曾安装过USB转串口驱动的USB口,有意思的事情发生了,Windows自动为我的单片机安装了串口鼠标驱动,我的鼠标开始满屏幕乱跑,还不时跳出右键菜单。经过重复试验,发现只要满足以下条件,Windows就会自动为你的设备安装串口鼠标驱动:
有了这些东西,只要再知道串口鼠标的命令方式,就完全可以DIY一个只受你想象力限制的PC辅助设备!下面附上鼠标信息发送格式:
上述P1、P2、P3三个参数说明:
P1_D7D6固定值01;D1D0=11本次鼠标移动包含左右移动分量;D3D2=11本次鼠标移动包含上下移动分量;D4=1目前鼠标右键呈按下状态;D5=1目前鼠标左键呈按下状态(D4D5=00则键呈释放状态)。
P2_D7D6固定值00;其余六位表示一个有符号二进制数,反映左右移动量,大于0为向右移动,小于0为向左移动。
P3_D7D6固定值00;其余六位表示一个有符号二进制数,反映上下移动量,大于0为向下移动,小于0为向上移动。
例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反馈出鼠标向右移动了2个单位,向上移动了6个单位,目前左键按下。
我现在正计划着来做个很好玩的东东
September 6th, 2006 at 10:26 pm
[...] 主要是一个定标问题很麻烦,要先测一下鼠标走一个单位距离发多少个脉冲,这个标准在不同的路面和使用时间都是不同的,也就是误差的主要来源。具体的串口机械鼠标协议,请看:《让Windows自动为你的设备安装串口鼠标驱动》,补充一下,波特率一般是1200,可以先接在电脑上测试看看。由于我的单片机只有8Kflash,没地方尝试软件校正系统了,不知道又没有可行性,但如果是拿来玩的话,基于串口机械鼠标的机器人定位系统是那些不能安装编码轮的机器人的一种不错的定位方案。 [...]
September 23rd, 2006 at 1:10 pm
其实这是Windows PnP标准里定义的.你可以看看Windows RS232 Pnp标准.随插既用