首 页 用户登录 | ![]() |
|||
|
|||
按字母检索 | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
按声母检索 | A | B | C | D | E | F | G | H | J | K | L | M | N | O | P | Q | R | S | T | W | X | Y | Z | 数字 | 符号 |
|
![]() |
您的位置: 5VAR论文频道 → 论文中心 → 理工论文 → 电子通信 |
|
||||||||||||||||||
用PComm开发PC机与单片机的通信程序 | ||||||||||||||||||
收集整理:佚名 来源:本站整理 时间:2009-01-10 22:32:09 点击数:[] ![]() |
||||||||||||||||||
数的命令集来处理串口通信,可以在Visual C++、Visual Basic、Delphi 5.0等多种开发工具下使用,且具有传输速度快、使用灵活方便等特点,能够满足复杂情况下的串口通信要求。 3.1 Pcomm的主要命令码 PComm的主要命令码有以下几种: ● sio open(port); 用于设置并打开串口,其中port的1、2、3、4分别代表COM1、COM2、COM3、COM4。当返回值为0时,表示串口已经打开,否则为串口打开出错。 ● sio close(port); 关闭串口,当返回值为0时,表示串口已经关闭,否则为串口关闭出错。 ● sio ioctl(portbaudmode); 用于设置串口波特率、校验位、数据位、停止位等参数。 ● sio getch(); 从串口输入缓冲区读出一个字符,返回值为0表示已收到数据。 ● sio-read(portbuflen); 用于从串口输入缓冲区读出一串字符,buf代表字符串数组len代表数组长度,返回值为0表示未收到字符,大于0代表收到字符的个数。 ● sio-SetReadTimeoutsportTotalTimeouts(Inter-valTimeouts); 在设定的等待时间内连续读串口输入缓冲区,TotalTimeouts代表设定的等待时间,IntervalTimeouts代表每次读出的间隔时间。 ● sio-flush(portfunc); 用于清空缓冲区。当func为0时清空输入缓冲区,为1时清空输出缓冲区,为2时清空输入输出缓冲区。 ● sio-putch(portterm); 用于向串口缓冲区发送一个字符,返回值为0时表示发送正确,否则表示发送错误。 ● sio-write(portbuflen); 用于从串口缓冲区发送一串字符,buf代表字符串数组,len代表数组长度。 3.2 实现过程 在用Pcomm处理PC机的串口通信时,其实现过程如下: (1)启动VC++ 6.0,新建一个基于对话框的应用程序TxRx。同时增加静态文本、编辑框和按钮控件,并为它们添加相应的变量。其属性见表1。
(2) 将Pcomm.h和Pcomm.lib加入到工程中,并在TxRxDlg.cpp文件中加入#include “Pcomm.h”头文件,此后便可调用其提供的通信命令集。 (3)在TxRxDlg.cpp文件中添加有关程序代码,也就是在OnInitiDialog函数中的TODO语句后加入以下代码: //TODO Add extra initialization here int retport=1 ret=sio openport //打开串口1 sio DTRport0 //置DTR为低电平 sio ioctlportB19200P NONE|BIT 8| STOP 1 //设置波特率为19200,8位数据位, 1位停止位,无校验位。 3.3 数据通信 下面举例说明PC机如何通过串口向单片机发送并接收数据。 void CTXRXDlgSendRecv//收发数据子函数 { while1 { int ret1 sio flushport2;//清空串口输入输出缓冲区 sio- write(port,1,5); 向串口缓冲区发送5个字符 sio- SetReadTimeouts(port,40,1); //在40ms内每隔1ms读一次串口 ret1=sio-read(port,RecvBuf,1); if (ret1>0) { sio- close(port); break; } //若收到数据,关闭串口,跳出循环 else; //若未收到数据,对串口再一次发数据并再次查询接收。 } } 4 结束语 本文给出了分布式控制系统中上位PC机与下位单片机之间进行异步串行通信的解决方案。此方案在实际运行过程中,运行稳定,通信性能良好,从而较好地解决了上位机与下位机之间的通信问题。 |
提供人:佚名 | |
【返回上一页】【打 印】【关闭窗口】 |
![]() |
5VAR论文频道 |
![]() |
5VAR论文频道 |
![]() |
关于本站 -
网站帮助 -
广告合作 -
下载声明 -
网站地图
Copyright © 2006-2033 5Var.Com. All Rights Reserved . |