CreateFile在串列埠中的運用

2021-06-21 10:11:14 字數 948 閱讀 2997

在32位的windows系統中,串列埠和其他通訊裝置是作為檔案處理的。對串列埠的操作和對檔案的操作是完全一樣的。通訊以呼叫createfile()開始。

函式原型如下:

handle createfile(

lpctstr lpfilename, //指向檔名的指標

dword dwdesiredaccess, //訪問模式(寫/讀)

dword dwsharemode, //共享模式

lpsecurity_attributes lpsecurityattributes, //指向安全屬性的指標

dword dwcreationdisposition, //如何建立

dword dwflagsandattributes, //檔案屬性

handle htemplatefile //用於複製檔案控制代碼 );

lpfilename:指定要開啟的串列埠邏輯名,用字串表示,如:com1和com2

dwdesiredaccess 在串列埠中一般為讀寫,故一般連起來使用,既既可以讀也可以寫:引數為generic_read|generic_write.

dwsharemode:埠的共享屬性。對於串列埠,他為0,這是與檔案與通訊裝置最大的區別。乙個程式開啟了乙個串列埠,另外乙個程式在用createfile建立的時候就會出錯。

dwcreationdisposition 在串列埠中必須設定為open_existing。表示不能建立新埠只能開啟已有的埠。

如果用createfile()函式開啟com1,**如下:

handle hcom;

hcom=createfile("com1",//  檔名,既是com1,為邏輯名

generic_read|generic_write, 

//允許讀和寫

0,//獨佔方式

null,

open_existing,

null );

CreateFile開啟串列埠時串列埠名字的寫法

開啟com1到com9用 m hcom createfile t com1 generic read generic write,0,null,open existing,null,null 或者m hcom createfile t com1 generic read generic write,...

Linux串列埠中的超時設定

在linux下使用串列埠通訊時,預設的阻塞模式是不實用的。而採用select或epoll機制的非阻塞模式,寫 有比較麻煩。幸好linux的串列埠自己就帶有超時機制。linux下使用termios.h中的的介面進行串列埠設定。使用termios.h的介面進行超時設定,主要是配置 vtime 和 vmi...

串列埠中斷函式詳解

arm cortex m3 核心支援 256 個中斷 16 個核心 240 外部 和可程式設計 256 級中斷優先順序的設定。stm32支援的中斷共為84個 16個核心 68個外部 和16級可程式設計中斷優先順序的設定。aircr是nivc配置中乙個關鍵的暫存器,由於stm32有很多中斷,要處理這些...