对PC某串口接收的外部数据进行处理操作的简单C程序 VC++6.0
来源:互联网 发布:捕鱼刷分软件 编辑:程序博客网 时间:2024/05/17 06:11
研二 消防项目
#include <Windows.h>
#include <stdio.h>
#include <memory.h>
#include <string.h>
HANDLE hCom;
double main(void)
{
hCom=CreateFile(TEXT("COM3"), //COM口 设置*******************
GENERIC_READ|GENERIC_WRITE, //允许读和写
0, //独占方式
NULL,
OPEN_EXISTING, //打开而不是创建
0, //同步方式
NULL);
if(hCom==(HANDLE)-1)
{
printf("打开COM失败!\n");
return FALSE;
}
else
{
printf("COM打开成功!\n");
}
SetupComm(hCom,1024,1024); //输入缓冲区和输出缓冲区的大小都是1024
COMMTIMEOUTS TimeOuts;
//设定读超时
TimeOuts.ReadIntervalTimeout=1000;
TimeOuts.ReadTotalTimeoutMultiplier=500;
TimeOuts.ReadTotalTimeoutConstant=5000;
//设定写超时
TimeOuts.WriteTotalTimeoutMultiplier=500;
TimeOuts.WriteTotalTimeoutConstant=2000;
SetCommTimeouts(hCom,&TimeOuts); //设置超时
DCB dcb;
GetCommState(hCom,&dcb);
dcb.BaudRate=115200; //波特率 设置************
dcb.ByteSize=8; //每个字节有8位
dcb.Parity=NOPARITY; //无奇偶校验位
dcb.StopBits=ONE5STOPBITS; //一个停止位
SetCommState(hCom,&dcb);
DWORD wCount; //读取的字节数
BOOL bReadStat;
//我的数据定义 因功能而异 自行编写*******************
int N=8,i=1;
double a[8]={0},sum=0,b,d;
double Pmax=4780;
double Pmin=3780;
double Pout;
char *w=",";
char *p;
char c[8]={0};
while(1)
{
PurgeComm(hCom,PURGE_TXCLEAR|PURGE_RXCLEAR); //清空缓冲区
char str[12]={0}; //设置能接收的数据的位数和类型,位数要等于一个数据包位数,否则数据包将混叠
bReadStat=ReadFile(hCom,str,12,&wCount,NULL);
if(!bReadStat)
{
printf("读串口失败!");
return FALSE;
}
else
{
//读串口成功之后对数据的操作 因功能而异 自行编写*******************
str[wCount]='\0';
printf("str=%s\n",str);
p=strstr(str,w);
p++;
strncpy(c,p,8);
b=atof(c);
printf("b=%f\n",b); //显示每次收到的数据
if (i<=N)
{
a[i-1]=b;
sum=sum+a[i-1];
//printf("稍等\n");
i++;
}
else
{
sum=sum-a[i-1-N];
a[i-1-N]=b;
sum=sum+a[i-1-N];
Pout=sum/N;
printf("Pout=%f\n",Pout); //显示8次压力均值
if (Pout>Pmax)
printf("正常\n");
else
{
if (Pout>Pmin)
printf("泄露\n");
else
printf("放水\n");
}
if (i>15)
i=9;
else
i++;
}
}
Sleep(5);
}
}
参考书籍:Visual C++_Turbo C串口通信编程实践
- 对PC某串口接收的外部数据进行处理操作的简单C程序 VC++6.0
- C#对串口数据接收的处理
- 一个简单的串口接收数据程序
- mfc串口通过串口接收到的数据进行分离处理
- 上位机接收数据,并进行处理的一段程序
- 串口设备数据的接收和处理
- verilog串口接收多个数据进行处理的实现方法
- 串口数据的接收
- 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
- 串口通信中接收数据时延迟处理与缓存处理的解决方案(C#)
- VC++ .net 串口操作(简单的上位机串口操作)
- 对vc++6.0的程序进行移植时出现的错误及处理(一)
- 串口数据接收处理
- stm32应用-简单的串口接收与发送程序
- 一个简单的接收网络数据程序
- 模拟器上面运行的应用程序能从串口接收PC发的数据吗
- VC下进行串口开发的简单说明
- C#--简单的串口通信程序
- linux export命令
- Leetcode - Remove Nth Node From End of List
- JS中的valueOf方法
- 技术博客网站推荐
- JavaScript中的forEach、$.each、map方法
- 对PC某串口接收的外部数据进行处理操作的简单C程序 VC++6.0
- Gazebo機器人仿真學習探索筆記(三)機器人模型
- slf4j绑定log4j2日志系统的过程(源码分析)
- 求出轮廓的周长进行筛选并绘制轮廓
- Netty通信
- 编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到Dest.txt文件中,并以相反的顺序读出显示在屏幕上
- 指向非静态成员函数的3种方式
- windows下的网络配置
- 微信端开发问题收集