用VC实现PC机与单片机串口通讯

用VC实现PC机与单片机串口通讯

ID:42665658

大小:27.50 KB

页数:3页

时间:2019-09-19

用VC实现PC机与单片机串口通讯_第1页
用VC实现PC机与单片机串口通讯_第2页
用VC实现PC机与单片机串口通讯_第3页
资源描述:

《用VC实现PC机与单片机串口通讯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用VC实现PC机与单片机串口通讯梁伯福PC机与单片机串口通讯可以通过多种方式来实现,在这里只介绍使用MSCOMM控件进行通讯。PC机与单片机进行串口通讯的电路如下:PC机RS232单片机TXDRXDTXDRXD因为单片机输入输出的是TTL电平,而PC机串口输入输出的是RS232电平,其与TTL电平不兼容,所以要通过RS232接口进行电平转换,这可通过集成电路MAX232来实现。在这里,我们的通讯采用主从方式,即PC机做主机,单片机作从机,PC机控制单片机发送或者接收数据,单片机没有主动发起通讯的权力。PC机程

2、序。我们首先在VC中通过appWizard生成一个基于对话框的程序,接着在对话框中添加MSCOMM控件。方法是:右击对话框->insertactiveXcontrol->MSCOMM32.OCX。添加MSCOMM控件后,我们需要在头文件中定义一个类型为CMScomm的变量。CMSCommm_msComm; //CMSComm是添加控件后VC自动生成的类接着我们使用此变量对串口进行初始化操作(可在对话框初始化时或通讯前调用此函数)。voidInitComm(){m_msComm.SetCommPort(1);/

3、/设置通讯的串口,可为1,2,….,N  //(如你的PC机有N个串口的话)m_msComm.SetInputMode(1);//设置接收模式,0为文本,1为二进制,要想能接收//值为0的数据,一定要设置为二进制模式m_msComm.SetInputLen(0);//设置读取方式,0为读取接收缓冲区的全部数据m_msComm.SetSettings("4800,n,8,1");//设置串口的波特率为4800,//无校验位,8数据位,1位停止位m_msComm.SetPortOpen(true);//打开串口,

4、准备通讯}为了方便,我们这里假定PC机一次只接收或发送一个数据。voidSendData(){VARIANTRData;COleSafeArraysafeArrayData;CByteArraydataBuf;//在这里假设要发送的数据为100,实际使用中可换成要发送的数据dataBuf.Add(100);m_msComm.SetOutput(COleVariant("R"));//命令单片机接收数据m_msComm.SetOutput(COleVariant(dataBuf));}voidReceiveDa

5、ta(){VARIANTRData;COleSafeArraysafeArrayData;BYTErxData[16];m_msComm.SetOutput(COleVariant("S"));//命令单片机发送数据RData = m_msComm.GetInput();//读取数据safeArrayData = RData;//VARIANT型变量转换为ColeSafeArray型变量longintlen=safeArrayData.GetOneDimSize();//得到有效数据长度for(longi=0

6、;i

7、getchar();}else{putchar(buf);}EA=1;//重新打开中断}好了,文章到此结束!希望能帮助你!

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。