2010-05-24 50 views
2

我已經寫了一個C程序發送一個字節到串口(com)。 我已經使用BIOSCOM發送數據 但我猜測它沒有打開端口。 請告訴我怎麼能打開和關閉C.一個COM端口串口在C

我的代碼是在這裏:

#define COM1 1; 
bioscom (1 , 65 , COM1); 

請幫我...

+1

這取決於您使用的平臺。視窗? Linux呢?什麼版本和口味? – 2010-05-24 07:57:12

+0

這不是一個Linux API;猜測win32或相關。 – 2010-05-24 08:02:13

+0

您好我的操作系統是WINXP – Mehdi 2010-05-24 11:10:08

回答

0

其中bioscom的API(API數0 )用於初始化(不打開)串口:例如指定波特率等。

假設bioscom使用BIOS API,我認爲串口不需要打開:因爲串口硬件已經存在,並且BIOS輸出到硬件。

但是,當操作系統將處理器置於保護模式並安裝O/S專用設備驅動程序時,操作系統可能會禁用BIOS API。

我不知道bioscom,但Google finds documentation and examples of how to use it

+0

喜 謝謝您的回答 我的問題didnt解決,我可以從COM端口發送/接收數據到/我的操作系統是WINXP – Mehdi 2010-05-24 11:09:42

+0

我SETT的bisoscom與API 0,但它dosnt工作 請幫我 – Mehdi 2010-05-24 11:10:46

+2

@ user222820你怎麼知道它不起作用(它不起作用的症狀是什麼)?您是否將您的軟件編譯爲16位DOS可執行文件?您是否嘗試過其他COM端口?用於在Windows下寫入串行端口的支持(32位Windows)API如下所述:http://msdn.microsoft.com/en-us/library/ms810467.aspx ... O/S可能會嘗試支持使用BIOS(INT 14h)API的應用程序,但我不認爲這是正式支持。 – ChrisW 2010-05-24 12:45:45

5

我用下面的Win32 API在一個命令行工具的Win32打開串口:

CreateFile - 使用字符串COMx作爲文件名,與串行端口號替換x

BuildCommDCBSetCommState - 用於設置參數(波特率,奇偶校驗,數據位,停止位)。

ReadFile and WriteFile - 用於使用由CreateFile返回的句柄進行讀寫。

CloseHandle - 關閉由CreateFile返回的句柄。

搜索MSDN的每個功能的文檔,你應該能夠得到它的工作很快。

+0

你可能想在那裏拋出SetCommTimeouts() – JustJeff 2010-05-24 21:04:01

+0

ChrisW在他的回答的評論中的鏈接提供了有關使用Win32訪問串行端口的更多詳細信息:http://msdn.microsoft.com/en-us/library/ms810467。 ASPX – tomlogic 2010-05-25 15:09:41