【问题标题】:Bluetooth COM Port Exceptions in C#.NetC#.Net 中的蓝牙 COM 端口异常
【发布时间】:2016-09-15 15:44:01
【问题描述】:

我正在使用带有 32feet.net 库的 Windows7 进行 Windows 应用程序开发。扫描并配对设备后,我得到了 COM 端口。当我打开端口并尝试在 COM 端口中发送数据时,我得到了两种类型的异常,它们如下所示

错误码异常

121 信号量超时已过期 1168 未找到元素。

我还尝试了以下链接中给出的解决方法, http://zachsaw.blogspot.in/2010/07/serialport-ioexception-workaround-in-c.html 但没有任何成果。 最后,我的怀疑围绕着蓝牙驱动程序。

关于如何找到解决此异常的方法的任何见解。

问候, 吉布森

【问题讨论】:

    标签: c# bluetooth serial-port


    【解决方案1】:

    我对此有类似的问题。 .net 4.7.1 解决了我的问题。我还需要确保我使用的蓝牙设备拥有最新的微软蓝牙驱动程序

    当后台线程发生异常时,SerialPort 流不再终止进程。在使用中移除 USB 串行端口时可能会发生这种情况。此新行为由 Switch.System.IO.Ports.DoNotCatchSerialStreamThreadExceptions AppContext 开关控制。当面向 .NET 4.7 或更低版本时,此开关默认设置为 truetf get。 [428461,System.dll,错误]

    https://github.com/Microsoft/dotnet/blob/0745983093568027ff931672d9db021e3e120b5b/releases/net471/dotnet471-changes.md

    更新:实际上它似乎是 2 个问题合二为一。 .net 错误和固件问题,设备永远不会重新打开蓝牙模块。

    【讨论】:

      【解决方案2】:

      我使用 RN-42 芯片进行蓝牙操作,并从以下链接研究了一些东西, https://electronics.stackexchange.com/questions/38113/does-bluetooth-range-increase-with-lower-baud-rate

      罪魁祸首是波特率!!!! 我尝试使用 9600 的标准波特率,但令人惊讶的是,一些数据传输被证明是成功的,尽管蓝牙设备状态已连接到 Windows 应用程序,但 COM 端口还是断开了连接。在此状态下,应用程序在几次数据传输后抛出异常,例如“未找到元素”和“信号量超时期限已过期”。更改制造商建议的波特率似乎更稳定。解决方法:在 windows 应用程序和蓝牙设备中调整为相同的波特率。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-15
        • 1970-01-01
        • 1970-01-01
        • 2023-04-11
        • 2011-08-12
        相关资源
        最近更新 更多