串列埠DCB結構詳解

2021-08-20 08:17:47 字數 2954 閱讀 8943

串列埠dcb結構詳解

成員說明

dcblength

dcb結構大小,即sizeof (dcb),在呼叫setconmstate來更新dcb前必須作設定

baudrate

指定當前採用的波特率,應與所連線的通訊裝置相匹配

fbinary

指定是否允許二進位制模式。win32 api不支援非二進位制模式傳輸,應設定為true

fparity

指定奇偶校驗是否允許,在為true時具體採用何種校驗看parity設定

parity

指定埠資料傳輸的校驗方法。以下是可取值及其意義:

取值意義

evenparity

偶校驗(2)

markparity

標記校驗,所發資訊幀第9位恒為1 (3)

n0parity

無校驗(0)

oddparity

奇校驗(1)

stopbits

指定埠當前使用的停止位數,可取值:

取值意義

0nest0pbit

1停止位(0)

0ne5st0pbits

1.5停止位(1)

tw0st0pbits

2停止位(2)

ferrorchar

該值為true,則用errorchar指定的字元代替奇偶校驗錯誤的接收字元

errorchar

指定errorchar字元(代替接收到的奇偶校驗發生錯誤時的位元組)

evtchar

當接收到此字元時,會產生乙個ev_rxflag事件,如果用setcommmask函式中指定了 ev_rxflag,則可用waitcommevent來監測該事件

eofchar

指定用於標示資料結束的字元

fnull

為true時,接收時自動去掉空(0值)位元組

fabortonerror

讀寫操作發生錯誤時是否取消操作。若設定為true,則當發生讀寫錯誤時,將取消 所有讀寫操作(錯誤狀態置為err0r_i0_ab0rtm)),直到呼叫clearconmerror函式 後才能重新進行通訊操作

foutxctsflow

是否監控cts(clear-to-send)訊號來做輸出流控。當設定為true時:

若cts為低電平,則資料傳送將被掛起,直至cts變為高。

cts的訊號一般由dce (通常是乙個modem)來控制,而dte (通常是計算機)傳送數 據時監測cts訊號。也就是說dce通過把cts置高來表明自己可以接收資料了

frtscontrol

設定 rts (reciiiest-to-send)流控,若為 0 則預設取值 rts_control_handshake。以 下是可取值及其意義:

取值意義

rts_control_disable

開啟裝置時置rts訊號為低電平,應用程式可通過呼叫 escapecoranfunction函式來改變rts線電平狀態

rts_control_enable

開啟裝置時置rts訊號為高電平,應用程式可通過呼叫 escapecoranfunction函式來改變rts線電平狀態

rts_control_handshake

允許rts訊號握手,此時應用程式不能呼叫 escapecoranfunction函式。當輸入緩衝區己經有足夠空間 接收資料時,驅動程式置rts為高以便允許dce來傳送; 1之置rts為低以阻止dce傳送資料。

rts_c0ntr0l_t0ggle

有位元組要傳送時rts變高,當所有緩衝位元組己經被傳送完 畢後,rts變低。此時應用程式不能呼叫 escapecoranfunction函式。該值在windows 95系統被忽略

foutxdsrflow

是否監控dsr (data-set-ready)訊號來做輸出流控。當設定為true時:

若dsr為低電平,則資料傳送將被掛起,直至dsr變為高。dsr的訊號一般由dce來 控制

fdtrcontrol

dtr (data-terminal-ready)流控,可取值如下:

取值意義

dtr_control_disable

開啟裝置時置dtr訊號為低電平,應用程式可通過呼叫 escapecoranfunction函式來改變dtr線電平狀態

dtr_control_enable

開啟裝置時置dtr訊號為高電平,應用程式可通過呼叫 escapecoranfunction函式來改變dtr線電平狀態

dtr_control_handshake

允許dtr訊號握手,此時應用程式不能呼叫 escapecoranfunction 函式

fdsrsensitivity i      1

通訊裝置是否對dsr訊號敏感。若設定為true,則當dsr為低時將會忽略所有接收 亟位元組

ftxcont inueonxoff

當輸入緩衝區滿且驅動程式己發出xoff字元時,是否停止傳送。當為true時,x0ff 被傳送後傳送仍然會繼續;為false時,傳送停止,直至輸入緩衝區有xonlim位元組 的空餘空間、驅動程式己傳送x0n字元之後傳送繼續。

foutx

x0n/x0ff流量控制在傳送時是否可用。如果為true,當x0ff值被收到的時候,發 送停止;當x0n值被收到的時候,傳送繼續

flnx

x0n/x0ff流量控制在接收時是否可用。如果為true,當輸入緩衝區己接收滿 xofflim位元組時,傳送x0ff字元;當輸入緩衝區己經有xonlim位元組的空餘容量時, 傳送x0n字元

xonlim

在x0n字元傳送前接收緩衝區內可允許的最小位元組數

xofflim

在x0ff字元傳送前接收緩衝區內可允許的最大位元組數

xonchar

指定x0n字元

xoffchar

指定x0ff字元

fdummy2

保留,未啟用

wreserved

未啟用,i須設定為0

wreservedl

保留,未啟用

串列埠VMIN VTIME 詳解

以前跟著做過vxworks的開發,主要通訊方式是串列埠,因為底層bsp包已經做好了,串列埠通訊非常簡單。後來接觸linux,在一塊ok6410上跑linux串列埠通訊,才發現原來天真的以為甚是簡單的串列埠變得如此的不簡單。include 1 串列埠的操作1.1開啟 fd open dev ttysa...

Java串列埠通訊詳解

序言 說到開源,恐怕很少有人不挑大指稱讚。學生通過開源 學到了知識,程式設計師通過開源類庫獲得了別人的成功經驗及能夠按時完成手頭的工程,商家通過開源軟體賺到了錢 總之是皆大歡喜。然而開源軟體或類庫的首要缺點就是大多缺乏詳細的說明文件和使用的例子,或者就是軟體 隨便你用,就是文件,例子和後期服務收錢。...

Linux C 串列埠程式設計 詳解 例項

linux下的串列埠程式設計其實與windows下無本質差別,說白了就是類似讀寫檔案一樣,對串列埠進行讀寫操作,用到的函式無非就是open,close,read,write函式等。具體的讀寫操作可分為下面四個步驟 開啟串列埠 配置串列埠 讀寫串列埠 關閉串列埠 串列埠配置主要包括波特率的配置,校驗位...