Visual C++在異步串行通信控制中的應(yīng)用 邱紅兵 韓峰 摘要:系統(tǒng)介紹了Visual
C++實(shí)現(xiàn)異步串行通信的基本原理,分別講述了用Windows函數(shù)庫API函數(shù)實(shí)現(xiàn)和C運(yùn)行時(shí)庫的實(shí)現(xiàn)方法,以及在控制系統(tǒng)中的編程應(yīng)用實(shí)例。 The Visual C++ Application in Asynchronous Serial Communication Control QIU Hong-bing HAN feng Abstract: The paper is focus
on the principle of asynchronous serial communication by Visual C++, and
tells of their implement methods using API function in Windows function
warehouse and C function singly. The paper also adduces program
application sample in control system. 1 引言 2 工作原理 圖1 控制系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)圖 3 Visual C++實(shí)現(xiàn)串行通信 |
圖2 RS-232接口連接 3.2.2 異步串行通信原理 表1 UART內(nèi)部寄存器端口分配 |
端口地址** | 指令 | 條件* | 寄存器名稱及作用 |
0x3f8(0x2f8) 0x3f8(0x2f8) 0x3f8(0x2f8) 0x3f9(0x2f9) 0x3f9(0x2f9) 0x3fa(0x2fa) 0x3fb(0x2fb) 0x3fc(0x2fc) 0x3fd(0x2fd) 0x3fe(0x2fe) |
_outp _inp _outp _outp _outp _inp _outp _outp _inp _inp |
DLAB=0 DLAB=0 DLAB=1 DLAB=1 DLAB=0 — — — — — |
寫入發(fā)送器保持寄存器 讀出接收器數(shù)據(jù)寄存器 寫入波特率因子(LSB) 寫入波特率因子(MSB) 寫入中斷允許寄存器 讀出中斷標(biāo)識(shí)寄存器 寫入線路控制寄存器 寫入MODEM控制寄存器 讀出線路狀態(tài)寄存器 讀出MODEM狀態(tài)寄存器 |
* DLAB指線路控制器 D7位; ** 括號(hào)前指COM1,括號(hào)內(nèi)指COM2。 下面,從編程應(yīng)用的順序考慮,對(duì)表1各個(gè)寄存器的作用進(jìn)行說明(端口地址以COM1為例)。 |
圖3 查詢I/O方式下通信流程圖 BOOL CCommu::WaitForStatus(int flag) 4 結(jié)束語 作者簡(jiǎn)介:邱紅兵(1974-),男,湖北云夢(mèng)縣人,碩士研究生,主要從事數(shù)學(xué)模型建立、微機(jī)應(yīng)用軟件開發(fā)、機(jī)電控制及自動(dòng)化研究。 參考文獻(xiàn)
|