2016-08-27 23 views
1

我正在開發一個項目,用於與設備進行串行通信的RS232,打開comport以啓動通信,它使用FT_OPEN **接收數據** FT_CLOSE成功打開eveytime,但零星地FT_OPEN返回FT_ERROR代碼爲'3',整個週期中斷。是否有人知道該代碼的含義?我如何解決這個問題?RS232 FTDI FT_OPEN返回FT_ERROR代碼= 3

+0

是否有一個原因,你需要使用D2XX驅動程序,而不是使用普通的虛擬COM港口司機? – rm5248

+0

是的。在任何情況下,我們都連接到多個設備,我們可以更容易地使用其序列號識別USB設備並開始與它通信。校正。我們實際上是使用FT_OpenEx()打開使用序列號。感謝您的評論。 –

+0

http://www.ftdichip.com/Support/Knowledgebase/index.html?ft_openex.htm –

回答

0

既然你想打開通過芯片序列號打開串口,你可以做的事情來解決這個問題。在Windows上,無論如何,COM端口都與芯片的序列號相關聯。如果您使用的是Linux,請創建一個udev規則來將正確的ttyUSB符號鏈接到知名位置。像這樣的東西應該工作:

DRIVERS=="ftdi_sio", ATTRS{serial}=="FT00112233", SYMLINK+="com_port_name"

一旦你有了到位的正確udev規則,你可以簡單地打開符號鏈接。

根據我的經驗,FTDI的D2XX驅動程序不是最可靠的;如果你仍然需要做任何低級別的配置,你可以嘗試使用libFTDI

圖書館使用從Java串行端口:

+0

在Windows上,有兩種設備,我一直在開放comport和每隔一段時間FT_STATUS一臺設備(每次都是一樣的)返回3.我的錯誤代碼,我必須拔下並重新插入USB設備再次啓動通信。有沒有辦法解決這個問題?謝謝。 –