串列埠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函式等。具體的讀寫操作可分為下面四個步驟 開啟串列埠 配置串列埠 讀寫串列埠 關閉串列埠 串列埠配置主要包括波特率的配置,校驗位...