• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            milkyway的窩

            最初想法的誕生地

             

            串行通訊



            串行通訊實際上將被所有的Windows CE設備所支持,在硬件水平上,通過電纜和紅外傳送器進行串行通訊是很普通的。調制解調器也支持串行通訊。

            1.PC和Windows CE的通信系統

            Win32的通信系統 Win32提供給用戶一個模塊化的32位的保護模式的通信系統。在Win32中,各種通信資源的函數做了很大的改進和標準化,使得它們的操作就如同文件的操作一樣。

            在串口讀寫操作中,Win32引入了超時概念。超時直接影響讀和寫的操作行為。當超過預先設定的超時間隔時,ReadFile、WriteFile操作仍未結束,那么將無條件結束讀寫操作,而不論是否已讀出或寫入指定數量的字符。

            Windows CE的通信系統 Windows CE將驅動程序分為兩種:本地設備驅動程序和流設備驅動程序。本地設備驅動程序,也稱為“內置驅動程序”,這些設備驅動程序是一些硬件所必需的,是由原始設備制造商創建的,用以驅動如鍵盤、觸摸屏、音頻設備等,往往在設備售出后就不會再更換。另一方面,流接口設備驅動程序(指可安裝的啟動程序)可以由第三方生產商提供,以支持添加到系統中的設備。Windows CE下的設備驅動程序在與應用程序相同的保護級上工作。當系統啟動時,大多數驅動程序是由設備管理進程(DEVICE.EXE)加載的,所有的這些驅動程序將共享同一個進程地址空間。

            本地設備驅動程序一般都被緊緊地限制在Windows CE的操作系統中,往往在設備售出后就不會再更換。因為Windows CE沒有像ISA或PCI那樣的用于附加插卡的總線,附加的硬件通常是通過PCMCIA或“小型快閃槽”安裝的,例如串口2是通過PCMCIA卡實現的。觀察注冊表中的HKEY_LOCAL_MACHINE下的\Drivers\Active鍵中的內容,可以了解在Windows CE中加載了什么驅動程序。 

            通信過程 包括(1)打開通信資源。在進程使用串口之前,首先應使用CreateFile函數打開通信資源,返回一個標識該資源的句柄。在CreateFile函數打開串口通信資源時,系統將根據上次打開資源時的數值初始化和配置資源;(2)讀寫串口資源。通過ReadFile和WriteFile函數來讀寫串口。讀和寫的超時時間由SetCommTimeouts函數設置;(3)關閉通信資源。在使用通信資源結束后,應調用CloseHandle函數來關閉通信句柄,釋放資源。

            基本的串行通信編程 串行設備被視為用于打開、關閉、讀和寫串口的常規、可安裝的流設備。Win32 API提供了一組通信函數,Windows CE支持了其中的大多數通信函數。

            打開和關閉串行端口:在所有的流設備都可以使用CreateFile來打開串行端口設備。一般的調用方法如下:

            hSer=CreateFile(TEXT(“COM1:”),

            GENERIC_READ|GENERIC_WRITE,

            0,

            NULL,

            OPEN_EXISTING,

            0,

            NULL);

             

            由于Windows CE不支持設備的重疊I/O,因此不能傳遞FILE_FLAG_OVERLAPPED標志。當不成功時,返回句柄INVALILD_HANDLE_VALUE,反之返回打開的串行端口句柄。

            調用CloseHandle可以關閉一個串行端口:

            CloseHandle(hSer);

            讀寫串行端口:可以使用ReadFile和WriteFile來讀寫串行端口。從串口讀出數據只需如下調用:

            int rc;

            DWORD cBytes;

            BYTE ch;

            rc=ReadFile(hSer,&ch,1,&cBytes,NULL);

            調用成功,則變量ch將讀入一個字節,cBytes將被設置為讀取的字節的數量。

            從串口寫入數據只需如下調用:

            int rc;

            DWORD cBytes;

            BYTE ch;

            ch=TEXT(‘A’);

            rc=WriteFile(hSer , &ch , 1 , &cBytes , NULL );

            上面的代碼將字母A寫入已經打開的端口,成功的話,ReadFile和WriteFile都將返回TRUE。


            http://palmheart.net/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=154

            每一個串行設備都匹配有一個COM口,例如“COM1”。Windows CE為打開串口和管理接收設備上的連接提供了一個API。一旦連接成功,將用相同的函數進行數據傳送,這些函數用以讀一個文件或者寫一個文件。數據只是簡單的從一個設備傳送到另一個設備。不支持同步和異步I/O。

            posted on 2007-01-04 15:09 milkyway 閱讀(538) 評論(0)  編輯 收藏 引用 所屬分類: wince(別人的文章技巧總結)

            導航

            統計

            公告

            隨筆皆原創,文章乃轉載. 歡迎留言!

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久香蕉视频| 久久99精品综合国产首页| 久久久久国产日韩精品网站| 久久精品国产精品亚洲| 亚洲人成无码网站久久99热国产| av色综合久久天堂av色综合在| 久久国产精品77777| 欧美大战日韩91综合一区婷婷久久青草| 思思久久99热只有频精品66| 国产精品无码久久久久久| 国产叼嘿久久精品久久| 久久久久免费精品国产| 日本福利片国产午夜久久| 日韩精品久久久久久久电影| 欧美精品一区二区精品久久| 久久亚洲精品成人无码网站| 国产一区二区三区久久精品| 久久国产劲爆AV内射—百度| 国产精品久久久久一区二区三区| 香蕉久久av一区二区三区| 精品国产乱码久久久久久浪潮| 国产精品一区二区久久国产| 色天使久久综合网天天| 欧美与黑人午夜性猛交久久久| 狠狠色丁香久久综合婷婷| 久久免费看黄a级毛片| 精品熟女少妇aⅴ免费久久| 久久99国产精品久久99果冻传媒| 久久无码AV中文出轨人妻| Xx性欧美肥妇精品久久久久久| 国产Av激情久久无码天堂| 亚洲va中文字幕无码久久不卡| 亚洲va久久久久| 久久久久久国产精品无码下载 | 亚洲国产成人久久综合一区77| 国产精品久久永久免费| 99久久精品毛片免费播放| 久久国产精品99精品国产| 99热成人精品热久久669| 久久精品欧美日韩精品| 72种姿势欧美久久久久大黄蕉|