2012-02-21 55 views
0

我有一個代碼發送數據到串口。我只是想確保它正確地發送數據。我檢查了函數的返回值和寫入的字節數,它是成功的。無論我在寫什麼,有沒有其他方法可以真正看到數據?測試串口應用程序

if(WriteFile(m_hSerialComm, pszBuf, dwSize, &dwNumberOfBytesWritten, NULL) != 0) 

我試圖用「Advanced Terminal Port software"

,但數據未在該窗口的到來。

回答

3

有幾種方法來測試您的軟件。如果你有兩個串口,然後將它們與連接一個電纜,並用另一個終端應用程序監聽另一個端口,例如您提到的端口應用程序;否則,您可以通過將引腳2和3連接到同一個端口來循環回去;一個免硬件選項將使用虛擬串行端口作爲由工具提供,如com0com

+0

它的幫助,現在我能夠使用終端應用程序和發送數據,它的工作原理。即使使用C#代碼,但它工作正常,但是當我使用CreateFile時,它失敗,說找不到錯誤文件未找到 – Jeeva 2012-02-21 07:06:46

0

從您在Microsoft Windows操作系統上開發的代碼片斷中,我推薦使用Portmon for Windows「官方」串行端口監視實用程序。過去我已經使用過它,並且發現它很簡單,並且對於它的多個過濾/搜索選項(因爲有時候在您的串行端口上傳遞的數據量是巨大的)而特別有用。

如果你想要的只是你寫到自己端口的數據的日誌,爲什麼不在你的WriteFile(也可能是你的ReadFile)函數中封裝一些讀寫這些函數的工具函數你的串口和一些日誌文件?你甚至可以添加時間戳,並從你自己的代碼中直接過濾「你正在尋找的任何東西」。

我發現最後這個選項在客戶遠程調試應用程序時非常有用。您可以在應用程序中添加一個按鈕來切換日誌記錄的打開和關閉,然後您只需要讓客戶點擊「日誌」按鈕並向您發送結果。

+0

請注意,64位版本的Windows不支持PortMon。 – 2012-02-21 06:49:48