我使用LabVIEW(版本7.0)通過串行連接控制設備。它使用USB連接,並作爲計算機上的虛擬串行端口(運行Windows XP)進行安裝。每當我的程序發送一個命令時,我的設備會不時崩潰,並且無法接受任何更多輸入(設備本身也停止工作),直到超時。串行通信在LabVIEW中崩潰
我看過使用Portmon的串行端口流量。每當設備崩潰時,串行驅動程序將發送我使用我的程序發送的命令四次而不是一次,並在兩者之間使用IOCTL_SERIAL_GET_COMMSTATUS命令。我看不到最後一個命令返回的內容,但我認爲之前的通信會發生一些事情。我在想我的端口配置不完全正確,但我不知道如何或爲什麼。每當我想寫一些東西時,我都會打開並關閉與設備的連接。
爲了完整起見,它的波特率爲9600,8位,無奇偶校驗,1個停止位,沒有流量控制。我知道這些參數的正確設置取決於設備,但製造商尚未提供任何推薦的設置。
除了Portmon,您還可以使用NI I/OTrace獲得LabVIEW串口通信的視角 - http://digital.ni.com/public.nsf/allkb/282C5D41E2BA04F2862574BA007803B9。顯示爲紅色的行表示錯誤狀態。 –
爲了幫助您,您需要提供更具體的信息。你連接了什麼設備,你使用了哪個驅動程序,並且可以張貼你的labview代碼的摘錄,儘管正如所暗示的那樣,它可能不是問題。你有沒有使用相同的驅動程序沒有這個問題的另一個程序。 –
@ D.J.Klomp具體來說,該設備是一個射頻發生器(由WindFreak製造,型號爲SynthUSBii)。它包含一個ATmega32U2微控制器。正如我在下面所描述的,爲每個命令添加一個回車符解決了我的問題,因此它不依賴於控制設備的程序。我意識到這個問題可能有點過於具體,無法在這裏處理,因爲我認爲它非常強烈地依賴於單片機的編程。 – Julius