none
SerialDevice串口设备怎样重新打开? RRS feed

  • 问题

  • 串口突然断开,怎样重新打开。

    再执行一次

    dis = await DeviceInformation.FindAllAsync(aqsFilter);

    SerialDevice serialport = await SerialDevice.FromIdAsync(dis[0].Id);

    这两句都会导致异步无限执行

    2017年11月23日 4:19

答案

  • DataReader和DataWriter执行Disposed方法释放串口

    无限执行是因为我在主线程里执行的缘故。

    重新执行一遍

    dis = await DeviceInformation.FindAllAsync(aqsFilter);

    SerialDevice serialport = await SerialDevice.FromIdAsync(dis[0].Id);

    即可打开串口

    新问题....重连方法如何无限执行下去直到重连成功

    2017年11月23日 7:55

全部回复

  • 用其他串口工具检查了以下,发现是串口被占用了,所以再次打开失败了.....这儿其实应该有个超时返回才行吧....

    那么问题来了,SerialDevice怎么释放串口呢?

    2017年11月23日 6:42
  • DataReader和DataWriter执行Disposed方法释放串口

    无限执行是因为我在主线程里执行的缘故。

    重新执行一遍

    dis = await DeviceInformation.FindAllAsync(aqsFilter);

    SerialDevice serialport = await SerialDevice.FromIdAsync(dis[0].Id);

    即可打开串口

    新问题....重连方法如何无限执行下去直到重连成功

    2017年11月23日 7:55
  • 搞定,try catch中catch到异常后继续异步执行打开
    2017年11月23日 8:03
  • 感谢您和大家分享您的解决方案!

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年11月27日 1:41