<strong id="vcwjy"><kbd id="vcwjy"></kbd></strong>

  • <em id="vcwjy"><ruby id="vcwjy"><input id="vcwjy"></input></ruby></em>
    <dd id="vcwjy"><center id="vcwjy"><video id="vcwjy"></video></center></dd>
    <tbody id="vcwjy"><pre id="vcwjy"></pre></tbody>
      <rp id="vcwjy"><object id="vcwjy"><input id="vcwjy"></input></object></rp>

      基于嵌入式Windows CE下串行通信的實現

      [來源] 達內    [編輯] 達內   [時間]2012-06-19

      Windows CE是一種小型的、基于ROM的、具有Win32子集API的操作系統。它的優勢在于小尺寸、Win32 API子集和對多平臺的支持能力。在Windows CE下編程需要注意的是,Windows CE設備的資源很少,存儲器、顯示器都很小,接口也比較少,而且根據實際情況變化很大。另外,Windows CE只支...

         Windows CE 是一種小型的、基于ROM的、具有 Win32子集API的操作系統。它的優勢在于小尺寸、 Win32 API子集和對多平臺的支持能力。在Windows CE 下編程需要注意的是,Windows CE設備的資源很少,存儲 器、顯示器都很小,接口也比較少,而且根據實際情況變化很大。另外,Windows CE只支持 Unicode,這在編程中要格外注意。在Windows CE 中,除了一些基本的Windows通用控件以外,還有一些專門設計的控件,比如 CommandBarWindows CE 體積雖小,但是它的功能并不少,內存管理、文件操作、多線程、網絡功能等等它都支持,可以說是麻雀雖小,五臟俱全。
        2 Windows CE下的串行通信
        串行端口在Windows CE下屬于流接口設備,它是串行設備接口的常規 I/O 驅動程序調用和與通信相關的具體函數的結合。串行設備被視為用于打開、關閉、讀寫串行端口的常規、可安裝的流設備。Windows CE 的通信函數和其它大多數Windows 的通信函數相同。特別要注意的是,Windows CE 不支持直接對串行端口的寄存器進行編程。常用的串行端口函數介紹如下:
        (1)打開和關閉串行端口
        CreateFile函數用于打開串行口。
        hPort=CreateFile(TEXT(“COM1 ”)GENERIC_READ|GENERIC_WRITE 0NULL OPEN_EXISTING0 NULL)。注意COM1 后要有一個冒號。最后一個參數dwFlagsAndAttributes必須為 0 ,因為Windows CE只支持非重疊 I/O 。第3個參數 dwShareMode也必須為0 ,通信端口不能像文件一樣被共享。這個函數的返回值是已打開的串行端口的句柄或者是INVALID_HANDLE_VALUE
        關閉串行口可以調用CloseHandle(hPort)
        (2)配置串行端口
        配置串行口主要是用DCB 結構配置端口設置,包括波特率、停止位、數據位長度、校驗位、流量控制等等,還有配置超時值。首先打開串行端口,用GetCommState 函數獲得當前打開串口配置,然后根據需要修改DCB成員,最后用 SetCommState 函數設置新的串口配置。
        DCB PortDCB; //創建 DCB變量
        Port.DCB.DCBlength=sizeof(DCB)
        GetCommState(hPort,&PortDCB)  //獲取當前串口配置修改DCB 成員
        PortDCB.BaudRate=9600; //波特率
        PortDCB.Parity=NOPARITY; //校驗位
        PortDCB.StopBits=ONESTOPBIT  //停止位
        PortDCB.ByteSize=8
           SetCommState(hPort,&PortDCB) // 設置新的串口配置

      資源下載

      ?