(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...