使用Visual C 進行串列埠通訊程式設計 續

2021-05-02 12:40:11 字數 1911 閱讀 9550

(3)序列資料的傳送和接收

與普通的檔案操作相同,在對序列口進行操作時,通常利用

readfile

函式讀取序列口收到的資料,利用

writefile

將需要傳送的資料寫如序列口。 n

序列資料的接收 利用

readfile

函式可以讀取將序列口接收到的資料。

readfile

函式原型如下:

boolreadfile(

handlehfile

lpviodlpbuffer

dwordnnumberofbytestoread

lpdwordlpnumberofbytesread

); 其中引數

hfile

指向已經開啟的序列口控制代碼;

lpbuffer

指向乙個讀取資料緩衝區;

nnumberofbytestoread

指定要從序列裝置中讀取的位元組數;

lpnumberofbytesread

指明實際從序列口中讀出的位元組數;

指向乙個

結構變數,該結構變數中包含乙個同步事件。

通常如果呼叫成功,

readfile

返回非0

值;否則返回值為

0。但是對於接收操作在後台進行的串列埠來說,返回值為

0不一定說明函式呼叫失敗。此時可以呼叫

getlasterror

函式獲取進一步的資訊。如果

getlasterror

返回值為

error_io_pending

,則說明該讀取串列埠的操作仍然處於後台等待狀態,而非乙個真正意義上的錯誤。 n

序列資料的傳送 利用

writefile

函式可以向序列口寫入資料。

writefile

函式原型如下:

boolwritefile(

handlehfile

lpviodlpbuffer

dwordnnumberofbytestowrite

lpdwordlpnumberofbyteswritten

); 其中引數

hfile

指向已經開啟的序列口控制代碼;

lpbuffer

指向乙個傳送資料緩衝區;

nnumberofbytestoread

指定要從序列裝置中傳送的位元組數;

lpnumberofbytesread

指明實際從序列口中傳送的位元組數;

指向乙個

結構變數,該結構變數中包含乙個同步事件。

通常如果呼叫成功,

writefile

返回非0

值;否則返回值為

0。但是對於傳送操作在後台進行的串列埠來說,返回值為

0不一定說明函式呼叫失敗。此時可以呼叫

getlasterror

函式獲取進一步的資訊。如果

getlasterror

返回值為

error_io_pending

,則說明該寫入串列埠的操作仍然處於後台等待狀態,而非乙個真正意義上的錯誤。

(4)關閉序列口

在用完序列口後通常要將其關閉。如果忘記關閉,該串列埠會始終處於開啟狀態,其它的應用程式就不能開啟或使用它。

關閉串列埠可以使用函式

closehandle

,其函式原型如下:

boolclosehandle(

handlehobject );

closehandle

函式非常簡單,其中

hobject

為該開啟串列埠的控制代碼。如果該函式呼叫成功,則返回值為非

0;否則返回值為0。

使用Visual C 進行串列埠通訊程式設計 一

http www.cppblog.com lee7 archive 2008 01 08 40685.html 利用 visual c 在windows 環境下設計非同步序列通訊程式可以使用不同的方法。一種方法可以使用 windows 系統提供的序列口 api函式 另一種方法可以直接使用 micro...

使用TCP 串列埠與板子進行網路通訊

最近做了乙個嵌入式的project,大概要求就是做乙個client端,乙個sensor端,兩者通過tcp udp進行通訊,然後在client端輸入不同的命令sensor需做出不同的處理,此處理可以用模擬的方法進行,比如要做乙個溫度感測器,則可以在sensor裡寫個隨機數生成器,最後將client的c...

串列埠通訊 串列埠通訊原理

1 rs232介面 rs232 c介面聯結器一般使用型號為db 9的9芯插頭座,只需3條介面線,即 傳送資料 接收資料 和 訊號地 即可傳輸資料,其9個引腳的定義如圖11 3所示。圖11 3 rs232 c介面聯結器定義 在rs232的規範中,電壓值在 3v 15v 一般使用 6v 稱為 0 或 o...