微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Windows环境下PC机与单片机串行通信的实现

Windows环境下PC机与单片机串行通信的实现

时间:02-15 来源:互联网 点击:

在对话框中插入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.

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top