基于嵌入式WinCE與MSP430單片機(jī)多串口通信設(shè)計(jì)
微軟提供了PB(Platform Builder)作為定制WinCE操作系統(tǒng)的集成開發(fā)環(huán)境。PB環(huán)境支持多種功能模塊和硬件接口,可以根據(jù)目標(biāo)設(shè)備的具體硬件配置進(jìn)行WinCE的裁剪和定制,定制WinCE平臺(tái)的流程如圖2所示。首先,通過安裝和創(chuàng)建設(shè)備驅(qū)動(dòng)程序?qū)W(wǎng)卡、串口、顯示驅(qū)動(dòng)、USB和電源驅(qū)動(dòng)等硬件進(jìn)行定制;然后,定制系統(tǒng)組件和服務(wù),包括TCP/IP、FTP、MFC、Telnet等,并根據(jù)硬件配置和操作系統(tǒng)的應(yīng)用特性修改配置文件;最后,生成操作系統(tǒng)映像文件,通過網(wǎng)口或串口將其下載到目標(biāo)設(shè)備中運(yùn)行。定制完成后,導(dǎo)出應(yīng)用程序開發(fā)工具包SDK。本文引用地址:http://2s4d.com/article/172596.htm
3 串口UART模塊
3.1 WinCE操作系統(tǒng)串口
在WinCE下運(yùn)行的程序,一般是在Windows環(huán)境下開發(fā)的,然后下載到嵌入式設(shè)備中。系統(tǒng)中是在Windows環(huán)境下用EVC去開發(fā)應(yīng)用軟件,然后下載到設(shè)備中去。串口在WinCE中屬于流接口設(shè)備,可以像對(duì)文件一樣對(duì)串口進(jìn)行打開、關(guān)閉、讀寫等操作。WinCE下的串口函數(shù)和Win-dows下的串口函數(shù)基本相同,但在一些方面有所不同:1)WinCE只支持Unicode;2)WinCE中有一些自己特有的控件,可以方便編程;3)EVC不支持重疊I/O操作。
3.2 在WinCE下開發(fā)串口通信步驟
1)打開端口并進(jìn)行初始化 在EVC中把設(shè)備當(dāng)做文件來處理,故使用CreateFile來打開端口。如果打開成功,則會(huì)返回打開串口的句柄。成功打開一個(gè)端口之后,需要對(duì)端口進(jìn)行初始化。調(diào)用串口通信函數(shù)SetupComm,設(shè)置COM的發(fā)送和接收緩沖區(qū)的大小。分配好緩沖區(qū)以后,調(diào)用CetCommTimeouts函數(shù)對(duì)讀寫串口進(jìn)行超時(shí)設(shè)置。然后調(diào)用GetCommState函數(shù)獲取當(dāng)前串口的默認(rèn)參數(shù)并返回一個(gè)DCB結(jié)構(gòu)體地址,通過給這個(gè)DCB結(jié)構(gòu)體各成員賦值來重新設(shè)定串口狀態(tài)。最后調(diào)用PurgeComm函數(shù)清空串口的發(fā)送接收緩沖區(qū)。
2)對(duì)串口進(jìn)行讀寫操作 成功配置好串口參數(shù)后即可調(diào)用函數(shù)ReadFile和WriteFile對(duì)串口進(jìn)行讀寫操作。在通信的過程中可能出現(xiàn)通信錯(cuò)誤導(dǎo)致程序無法繼續(xù)進(jìn)行,一般需要調(diào)用ClearCommError清除這些錯(cuò)誤。
3)關(guān)閉串口 使用完串口后必須關(guān)閉串口。串口不能像文件一樣被共享,不釋放別的應(yīng)用程序不能使用。關(guān)閉串口只需使用CloseHandle即可。WinCE串口流程圖如圖3所示。
評(píng)論