Windows环境下PC机与单片机串行通信的实现
在对话框中插入MSComm控件后,根据通信协议,通过在主对话框的初始化函数OnInitDialog()中,加入如下代码可以实现串口打开和属性设置。
初始化后,接下来是对数据的发送与接收。
由通信协议可知,数据包中的数是以十六进制字符表示,因此在发送数据时,对数据还需做一定的处理。即先将需要发送的字符串转换为相应的十六进制字节串,然后再经COleVariant类将其转换为通用的VARIANT型变量,再通过控件的SetOutput()函数把数据从串口发出去。以发送1帧数据为例,其实现的主要代码如下:
至于数据的接收,我们通过让MSComm控件响应OnComm事件来完成,通过ClassWizard加入其对事件的响应,当有数据到达时便会通知 OnComm()函数去处理,从而实现数据的异步接收。由于接收的数据为变体数据VARIANT,因此,还必须做一些处理,具体实现代码如下:
根据以上的方法,我们无需花很大的工作量,就能编写出一个功能较强的串口通信程序。
4 结 语
按以上方法编写的程序在Windows XP下由Microsoft VisualC++6.0编译通过,并在PC机与遥控CCD相机控制子系统的串行通信过程中获得了满意的效果。同时串行通信的这种软、硬件实现方法也可以用于PC机与其他外设之间的通信,实用范围非常广泛。
参考文献
[1]希望图书创作室.Visual C++6.0技术内幕[M].第5版.北京:北京希望电子出版社,1999.
[2]何立明.单片机中级教程[M].北京:北京航空航天大学出版社,1999.
[3]啸峰工作室.在VCA++中利用ActiveX控件开发串行通信程序[DB].http://www.gjwtech.com/serialcomm.htm,2002.
通信 实现 串行 单片机 环境 PC Windows 相关文章:
- 基于FPGA的通信系统基带验证平台的设计(06-11)
- 基于DSP的空间光通信APT运动控制箱设计(10-11)
- 嵌入式语音通信系统中VxWorks BSP的设计实现(09-18)
- DSP在通信中的应用(10-12)
- 利用数字信号控制器实现稳健的PLC通信(05-02)
- 短波通信中一种时延设计方法与DSP实现(05-02)