在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有很多中斷,要處理這些...