windows系统

您所在的位置:网站首页 电脑鼠标不听使唤乱跳 windows系统

windows系统

2024-07-12 15:19| 来源: 网络整理| 查看: 265

问题描述

最近在预装有windows7 SP1系统的工控机上,开发了一款modbus数据监听、处理的应用程序。主要功能就是监听485线上modbus通信数据,处理数据,并上报到中心平台,485数据通过USB串口转485信号转换模块获取。

调试过程中发现,工控机在接入被监听485信号的情况下启动,进入系统之后,采集程序会出现打不开串口设备的问题,并且,鼠标会不停的乱跳。

问题原因

起初怀疑是485数据发送频率太快,系统处理不及时导致的。之后,否定了这种猜测,因为串口设备和鼠标是两个不同的设备,设备应该不会相互干扰,唯一的可能就是U转485模块被系统识别成了“鼠标设备”。

果然,通过系统的“设备管理器”,证实了这种猜测,两个U转485模块被识别成了Microsoft serial BallPoing,而且位置就是那两个串口设备。

在这里插入图片描述 原来如此,由于串口上一直有485数据,系统启动时候,误认为这两个串口发送的数据是鼠标数据,从而把串口设备识别成了鼠标设备,这也解释了为什么应用程序打不开串口设备,因为这两个串口设备已经被占用了!

解决方法

知道了问题原因,解决办法就好说了,有以下几种:

不要在系统启动时,向串口发送数据,这样串口设备很容易会被识别成“串口鼠标设备”。如必须发送串口数据,比如本案例,监听485数据,可以在系统启动之后,将“Microsoft serial ballpoing”设备禁用,下次系统再启动时候,就不会再将485串口识别成鼠标设备了; 在这里插入图片描述禁用注册表中sermouse的启动项,打卡注册表,sermouse注册表的路径如下: “计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sermouse”

在这里插入图片描述 Start各种值得含义如下:

0,则驱动由启动引导器加载,应该跟“随着开机,最先启动”是同一回事;1,则驱动由操作系统的I/O子系统加载,即- 在系统内核初始化时加载;2,则驱动/服务在启动后自动加载;3,则驱动/服务就是按需手动加载;4,驱动/服务就是被禁用的状态

这里将Start的值置位4,禁用Sermouser驱动服务。

还有一种不太建议的方法,就是找到Microsoft serial ballpoing的驱动程序,然后删掉,这样可以从根本上解决问题。但是,驱动程序毕竟是系统程序,直接删掉,可能会造成系统不稳定,所以,不太建议这么做。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3