Visual C++在异步串行通信控制中的应用 邱红兵 韩峰 摘要:系统介绍了Visual
C++实现异步串行通信的基本原理,分别讲述了用Windows函数库API函数实现和C运行时库的实现方法,以及在控制系统中的编程应用实例。 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 控制系统网络结构图 3 Visual C++实现串行通信 |
图2 RS-232接口连接 3.2.2 异步串行通信原理 表1 UART内部寄存器端口分配 |
端口地址** | 指令 | 条件* | 寄存器名称及作用 |
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 — — — — — |
写入发送器保持寄存器 读出接收器数据寄存器 写入波特率因子(LSB) 写入波特率因子(MSB) 写入中断允许寄存器 读出中断标识寄存器 写入线路控制寄存器 写入MODEM控制寄存器 读出线路状态寄存器 读出MODEM状态寄存器 |
* DLAB指线路控制器 D7位; ** 括号前指COM1,括号内指COM2。 下面,从编程应用的顺序考虑,对表1各个寄存器的作用进行说明(端口地址以COM1为例)。 |
图3 查询I/O方式下通信流程图 BOOL CCommu::WaitForStatus(int flag) 4 结束语 作者简介:邱红兵(1974-),男,湖北云梦县人,硕士研究生,主要从事数学模型建立、微机应用软件开发、机电控制及自动化研究。 参考文献
|