char szTx[0x10]; // 发送缓存
char szRx[0x10]; // 接收缓存
char szCommand[0x10];// 命令
int nTx,nRx; // 缓存容量存储用
int nSum; // 求和代码计算用
BOOL bRet;
int nRet;
int i;
//     打开COM1端口     
hCom = CreateFile ("COM1", (GENERIC_READ | GENERIC_WRITE), 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (hCom !=NULL) {
//     进行COM1端口的通讯设定     
GetCommState (hCom,&hDcb); // 获取当前的通讯信息
hDcb.DCBlength=sizeof (DCB); // 设定结构体的大小
hDcb.BaudRate =19200; // 通讯速率=19200bps
hDcb.ByteSize =8; // 位长=8bit
hDcb.Parity =2; // 偶校验
hDcb.StopBits =2; // 停止位长=2bit
bRet=SetCommState (hCom,&hDcb); // 设定变更后的通讯信息
if (bRet == TRUE) {
//     进行COM1端口的超时设定      
GetCommTimeouts (hCom,&hTim); // 获取当前的超时值
hTim.WriteTotalTimeoutConstant=1000; // 写入超时为1秒
hTim.ReadTotalTimeoutConstant=1000; // 读取超时为1秒
SetCommTimeouts (hCom,&hTim); // 设定变更后的超时值
//     设定使站号为1的变频器切换到网络运行模式的命令      
sprintf (szCommand,"01FB10000"); // 发送数据(写入网络运行)
nTx=strlen (szCommand); // 发送数据的大小
//     生成求和代码      
nSum=0; // 求和数据的初始化
for (i=0;i < nTx;i++) {
nSum +=szCommand[i]; // 计算求和代码
nSum &= (0xff); // 屏蔽数据
}
//     生成发送数据      
memset (szTx,0,sizeof (szTx)); // 发送缓存的初始化
memset (szRx,0,sizeof (szRx)); // 接收缓存的初始化
sprintf (szTx,"\5%s%02X",szCommand,nSum);// ENQ代码+发送数据+求和代码
nTx=1 + nTx + 2; // ENQ代码数+发送数据数+求和代码数
nRet=WriteFile (hCom,szTx,nTx,&nTx,NULL);
//     发送      
if (nRet !=0) {
nRet=ReadFile (hCom,szRx,sizeof (szRx),&nRx,NULL);
//     接收      
if (nRet !=0) {
//     显示接收数据      
for (i=0;i < nRx;i++) {
printf ("%02X ", (BYTE)szRx[i]);// 输出接收数据到控制台
// 以16进制数显示ASCII码。'0'显示为30。
上一篇:MATLAB智能控制在交流调速系统矢量控制系统中的应用分析
下一篇:MATLAB异步电机矢量控制系统的仿真研究

基于Kinect手势识别的遥操...

基于51单片机自动门智能控制系统设计

基于TI-DSP平台的电力电子测控平台设计

基于传感器网络的分布式集员滤波问题的研究

基于飞思卡尔芯片LED色彩控制器的设计

基于磁共振技术的家用无...

基于simulink的三相桥式全控...

谷度酒庄消费者回访调查问卷表

多元化刑事简易程序构建探讨【9365字】

《醉青春》导演作品阐述

拉力采集上位机软件开发任务书

中国古代秘书擅权的发展和恶变

浅谈新形势下妇产科护理...

国内外无刷直流电动机研究现状

高校网球场馆运营管理初探【1805字】

辩护律师的作证义务和保...

浅谈传统人文精神茬大學...