• <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的窩

            最初想法的誕生地

             

            串行通訊



            串行通訊實(shí)際上將被所有的Windows CE設(shè)備所支持,在硬件水平上,通過電纜和紅外傳送器進(jìn)行串行通訊是很普通的。調(diào)制解調(diào)器也支持串行通訊。

            1.PC和Windows CE的通信系統(tǒng)

            Win32的通信系統(tǒng) Win32提供給用戶一個(gè)模塊化的32位的保護(hù)模式的通信系統(tǒng)。在Win32中,各種通信資源的函數(shù)做了很大的改進(jìn)和標(biāo)準(zhǔn)化,使得它們的操作就如同文件的操作一樣。

            在串口讀寫操作中,Win32引入了超時(shí)概念。超時(shí)直接影響讀和寫的操作行為。當(dāng)超過預(yù)先設(shè)定的超時(shí)間隔時(shí),ReadFile、WriteFile操作仍未結(jié)束,那么將無(wú)條件結(jié)束讀寫操作,而不論是否已讀出或?qū)懭胫付〝?shù)量的字符。

            Windows CE的通信系統(tǒng) Windows CE將驅(qū)動(dòng)程序分為兩種:本地設(shè)備驅(qū)動(dòng)程序和流設(shè)備驅(qū)動(dòng)程序。本地設(shè)備驅(qū)動(dòng)程序,也稱為“內(nèi)置驅(qū)動(dòng)程序”,這些設(shè)備驅(qū)動(dòng)程序是一些硬件所必需的,是由原始設(shè)備制造商創(chuàng)建的,用以驅(qū)動(dòng)如鍵盤、觸摸屏、音頻設(shè)備等,往往在設(shè)備售出后就不會(huì)再更換。另一方面,流接口設(shè)備驅(qū)動(dòng)程序(指可安裝的啟動(dòng)程序)可以由第三方生產(chǎn)商提供,以支持添加到系統(tǒng)中的設(shè)備。Windows CE下的設(shè)備驅(qū)動(dòng)程序在與應(yīng)用程序相同的保護(hù)級(jí)上工作。當(dāng)系統(tǒng)啟動(dòng)時(shí),大多數(shù)驅(qū)動(dòng)程序是由設(shè)備管理進(jìn)程(DEVICE.EXE)加載的,所有的這些驅(qū)動(dòng)程序?qū)⒐蚕硗粋€(gè)進(jìn)程地址空間。

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

            通信過程 包括(1)打開通信資源。在進(jìn)程使用串口之前,首先應(yīng)使用CreateFile函數(shù)打開通信資源,返回一個(gè)標(biāo)識(shí)該資源的句柄。在CreateFile函數(shù)打開串口通信資源時(shí),系統(tǒng)將根據(jù)上次打開資源時(shí)的數(shù)值初始化和配置資源;(2)讀寫串口資源。通過ReadFile和WriteFile函數(shù)來讀寫串口。讀和寫的超時(shí)時(shí)間由SetCommTimeouts函數(shù)設(shè)置;(3)關(guān)閉通信資源。在使用通信資源結(jié)束后,應(yīng)調(diào)用CloseHandle函數(shù)來關(guān)閉通信句柄,釋放資源。

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

            打開和關(guān)閉串行端口:在所有的流設(shè)備都可以使用CreateFile來打開串行端口設(shè)備。一般的調(diào)用方法如下:

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

            GENERIC_READ|GENERIC_WRITE,

            0,

            NULL,

            OPEN_EXISTING,

            0,

            NULL);

             

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

            調(diào)用CloseHandle可以關(guān)閉一個(gè)串行端口:

            CloseHandle(hSer);

            讀寫串行端口:可以使用ReadFile和WriteFile來讀寫串行端口。從串口讀出數(shù)據(jù)只需如下調(diào)用:

            int rc;

            DWORD cBytes;

            BYTE ch;

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

            調(diào)用成功,則變量ch將讀入一個(gè)字節(jié),cBytes將被設(shè)置為讀取的字節(jié)的數(shù)量。

            從串口寫入數(shù)據(jù)只需如下調(diào)用:

            int rc;

            DWORD cBytes;

            BYTE ch;

            ch=TEXT(‘A’);

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

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


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

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

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

            導(dǎo)航

            統(tǒng)計(jì)

            公告

            隨筆皆原創(chuàng),文章乃轉(zhuǎn)載. 歡迎留言!

            常用鏈接

            留言簿(37)

            隨筆分類(104)

            隨筆檔案(101)

            文章分類(51)

            文章檔案(53)

            wince牛人

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            久久91精品国产91久久麻豆| 2021久久精品国产99国产精品| 国内精品久久久久影院优| 天堂久久天堂AV色综合| 国产精品久久久久久吹潮| 欧美777精品久久久久网| 国产精品久久久久乳精品爆| 日日狠狠久久偷偷色综合96蜜桃| 亚洲伊人久久成综合人影院| 久久久久久午夜成人影院 | 无码人妻久久一区二区三区| 国内精品久久久久影院薰衣草| 国产精品一久久香蕉产线看| 国产一区二区三精品久久久无广告| 免费精品国产日韩热久久| 久久亚洲精品成人AV| 久久人人爽人人爽人人片AV东京热 | 99久久人妻无码精品系列| 久久精品国产99久久丝袜| 四虎亚洲国产成人久久精品| 欧美日韩精品久久久久| 国内精品免费久久影院| 72种姿势欧美久久久久大黄蕉| 久久久久久久久66精品片| 久久久久国产日韩精品网站| 久久精品视频网| 久久人人爽人人爽人人AV| 久久亚洲国产成人精品无码区| 久久久久99这里有精品10| 久久香蕉超碰97国产精品| 亚洲国产天堂久久综合网站| 久久精品国产亚洲av麻豆小说| 国产精品女同久久久久电影院| 99精品久久久久久久婷婷| 色综合久久88色综合天天 | 亚洲精品99久久久久中文字幕| 亚洲精品美女久久久久99| 久久无码一区二区三区少妇| 理论片午午伦夜理片久久 | 免费久久人人爽人人爽av| 国产激情久久久久久熟女老人|