日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

windows系統-串口設備導致鼠標亂跳的問題

作者:奔跑的碼仔 更新時間: 2022-07-12 編程語言

問題描述

最近在預裝有windows7 SP1系統的工控機上,開發了一款modbus數據監聽、處理的應用程序。主要功能就是監聽485線上modbus通信數據,處理數據,并上報到中心平臺,485數據通過USB串口轉485信號轉換模塊獲取。

調試過程中發現,工控機在接入被監聽485信號的情況下啟動,進入系統之后,采集程序會出現打不開串口設備的問題,并且,鼠標會不停的亂跳。

問題原因

起初懷疑是485數據發送頻率太快,系統處理不及時導致的。之后,否定了這種猜測,因為串口設備和鼠標是兩個不同的設備,設備應該不會相互干擾,唯一的可能就是U轉485模塊被系統識別成了“鼠標設備”。

果然,通過系統的“設備管理器”,證實了這種猜測,兩個U轉485模塊被識別成了Microsoft serial BallPoing,而且位置就是那兩個串口設備。

在這里插入圖片描述
原來如此,由于串口上一直有485數據,系統啟動時候,誤認為這兩個串口發送的數據是鼠標數據,從而把串口設備識別成了鼠標設備,這也解釋了為什么應用程序打不開串口設備,因為這兩個串口設備已經被占用了!

解決方法

知道了問題原因,解決辦法就好說了,有以下幾種:

  1. 不要在系統啟動時,向串口發送數據,這樣串口設備很容易會被識別成“串口鼠標設備”。
  2. 如必須發送串口數據,比如本案例,監聽485數據,可以在系統啟動之后,將“Microsoft serial ballpoing”設備禁用,下次系統再啟動時候,就不會再將485串口識別成鼠標設備了;
    在這里插入圖片描述
  3. 禁用注冊表中sermouse的啟動項,打卡注冊表,sermouse注冊表的路徑如下:
    “計算機\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sermouse”

在這里插入圖片描述
Start各種值得含義如下:

  • 0,則驅動由啟動引導器加載,應該跟“隨著開機,最先啟動”是同一回事;
  • 1,則驅動由操作系統的I/O子系統加載,即- 在系統內核初始化時加載;
  • 2,則驅動/服務在啟動后自動加載;
  • 3,則驅動/服務就是按需手動加載;
  • 4,驅動/服務就是被禁用的狀態

這里將Start的值置位4,禁用Sermouser驅動服務。

  1. 還有一種不太建議的方法,就是找到Microsoft serial ballpoing的驅動程序,然后刪掉,這樣可以從根本上解決問題。但是,驅動程序畢竟是系統程序,直接刪掉,可能會造成系統不穩定,所以,不太建議這么做。

原文鏈接:https://blog.csdn.net/lhl_blog/article/details/122542846

欄目分類
最近更新