用VC实现PC机与单片机串口通讯_第1页
用VC实现PC机与单片机串口通讯_第2页
用VC实现PC机与单片机串口通讯_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用用 VC 实现实现 PC 机与单片机串口通讯机与单片机串口通讯 梁伯福梁伯福 PC 机与单片机串口通讯可以通过多种方式来实现 在这里只介绍使用 MSCOMM 控 件进行通讯 P 机与单片机进行串口通讯的电路如下 因为单片机输入输出的是 TTL 电平 而 PC 机串口输入输出的是 RS232 电平 其与 TTL 电平不兼容 所以要通过 RS232 接口进行电平转换 这可通过集成电路 MAX232 来实 现 在这里 我们的通讯采用主从方式 即 机做主机 单片机作从机 机控制单 片机发送或者接收数据 单片机没有主动发起通讯的权力 机程序 我们首先在 中通过 appWizard 生成一个基于对话框的程序 接着在 对话框中添加 控件 方法是 右击对话框 insert activeX control MSCOMM32 OCX 添加 控件后 我们需要在头文件中定义一个类型为 CMScomm 的变量 CMSComm m msComm CMSComm 是添加控件后 自动生成的类 接着我们使用此变量对串口进行初始化操作 可在对话框初始化时或通讯前调用此 函数 void InitComm m msComm SetCommPort 设置通讯的串口 可为 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 打开串口 准备通讯 为了方便 我们这里假定 机一次只接收或发送一个数据 void SendData VARIANT RData COleSafeArray safeArrayData CByteArray dataBuf 在这里假设要发送的数据为 100 实际使用中可换成要发送的数据 单片机 机 TXD TXD RXD RXD dataBuf Add 100 m msComm SetOutput COleVariant R 命令单片机接收数据 m msComm SetOutput COleVariant dataBuf void ReceiveData VARIANT RData COleSafeArray safeArrayData BYTE rxData 16 m msComm SetOutput COleVariant S 命令单片机发送数据 RData m msComm GetInput 读取数据 safeArrayData RData VARIANT 型变量转换为 ColeSafeArray 型变量 long int len safeArrayData GetOneDimSize 得到有效数据长度 for long i 0 i len i 转换为 BYTE 型数组 这时 rxData 数组的值即为 PC 机从单片机接收到的数 据 safeArrayData GetElement 单片机程序如下 通讯方式 波特率等设置 略 unsigned char buf 100 void ComToPC interrupt 4 using 3 unsigned char tempData EA 0 关闭所有中断 tempData SBUF if tempDa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论