当应用第三方串口时,为什么我的串口程序在LabWindows™/CVI不能正常工作



主要软件: LabWindows/CVI Development Systems>>LabWindows/CVI Full Development System
主要软件版本: 2013
主要软件修正版本: N/A
次要软件: LabWindows/CVI Development Systems>>LabWindows/CVI Base Package

问题: 我的电脑没有串口,所以我使用USB转串口的适配器与我的设备进行通信。我在LabWindows/CVI平台上运行调用RS-232库的串口程序,当我调用第三方串口函数时它不能正常运行。我的程序没有接收到串口数据。为什么我的程序没有正常工作,我该如何解决这个问题呢?

解答: 这个问题可能是你应用了InstallComCallback串口回调函数造成的。当使用第三方适配器,在串口中使用一个回调获得响应的功能不可用。如果你写了串行通信的应用程序使用InstallComCallbackserial回调函数从串口读取数据,由于回调函数不能被触发所以你的程序不能工作。InstallComCallback 函数不能通过第三方的串口识别触发事件。 相反,你需要重新架构程序使用轮询等待RS-232端口的响应。你可以通过在输入队列使用含有GetInQLen函数的循环来检查输入队列的数据是否可用。如果你需要程序在串口等待数据的同时仍然可以保持响应,当使用InstallComCallback函数时,你可以创建多线程应用程序,一个线程用于用户接口,另一个用于串口轮询。想要了解更多的信息,你可以查看下面列出的相关链接。 Note: NI USB-232/485 USB串口转换适配器并没有以上的限制,InstallComCallback函数可以应用在 NI的USB串口转换适配器。

相关链接: 相关链接: Products and Services: USB Serial Interfaces LabWindows/CVI Help: InstallComCallback LabWindows/CVI Help: GetInQLen White Paper: Multithreading in LabWindows™/CVI LabWindows™/CVI Help: Using a Thread Pool to Run Code in Secondary Threads

附件:





报告日期: 11/06/2000
最近更新: 07/29/2015
文档编号: 235DR41R