下载

1下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 VC

VC.doc

VC

初四
2011-04-14 0人阅读 举报 0 0 暂无简介

简介:本文档为《VCdoc》,可适用于工程科技领域

用VC实现PC机与单片机串口通讯用VC实现PC机与单片机串口通讯梁伯福PC机与单片机串口通讯可以通过多种方式来实现在这里只介绍使用MSCOMM控件进行通讯。PC机与单片机进行串口通讯的电路如下:因为单片机输入输出的是TTL电平而PC机串口输入输出的是RS电平其与TTL电平不兼容所以要通过RS接口进行电平转换,这可通过集成电路MAX来实现。在这里我们的通讯采用主从方式即PC机做主机单片机作从机PC机控制单片机发送或者接收数据单片机没有主动发起通讯的权力。PC机程序。我们首先在VC中通过appWizard生成一个基于对话框的程序接着在对话框中添加MSCOMM控件。方法是:右击对话框->insertactiveXcontrol->MSCOMMOCX。添加MSCOMM控件后我们需要在头文件中定义一个类型为CMScomm的变量。CMSCommmmsComm CMSComm是添加控件后VC自动生成的类接着我们使用此变量对串口进行初始化操作(可在对话框初始化时或通讯前调用此函数)。voidInitComm(){mmsCommSetCommPort(1)设置通讯的串口可为12…N  (如你的PC机有N个串口的话)mmsCommSetInputMode()设置接收模式为文本为二进制要想能接收值为的数据一定要设置为二进制模式mmsCommSetInputLen()设置读取方式为读取接收缓冲区的全部数据mmsCommSetSettings(",n,,")设置串口的波特率为,无校验位,数据位,位停止位mmsCommSetPortOpen(true)打开串口准备通讯}为了方便我们这里假定PC机一次只接收或发送一个数据。voidSendData(){VARIANTRDataCOleSafeArraysafeArrayDataCByteArraydataBuf在这里假设要发送的数据为实际使用中可换成要发送的数据dataBufAdd()mmsCommSetOutput(COleVariant("R"))命令单片机接收数据mmsCommSetOutput(COleVariant(dataBuf))}voidReceiveData(){VARIANTRDataCOleSafeArraysafeArrayDataBYTErxDatammsCommSetOutput(COleVariant("S"))命令单片机发送数据RData = mmsCommGetInput()读取数据safeArrayData = RDataVARIANT型变量转换为ColeSafeArray型变量longintlen=safeArrayDataGetOneDimSize()得到有效数据长度for(longi=i<leni){转换为BYTE型数组,这时rxData数组的值即为PC机从单片机接收到的数据safeArrayDataGetElement(i,rxDatai)}}单片机程序如下:……通讯方式波特率等设置(略)unsignedcharbuf=voidComToPC()interruptusing{unsignedchartempDataEA=关闭所有中断tempData=SBUFif(tempData=='R')'R'为接收数据'S'为发送数据{buf=getchar()}else{putchar(buf)}EA=重新打开中断}好了文章到此结束!希望能帮助你!

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/3

VC

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利