上位机实时接收串口数据,到达一定条件后保存至本地
下位机10ms发送80个字的数据给上位机。上位机WIN32平台,开启了一个线程用来读串口数据,又有一个单独的现成用来保存串口数据,可是经测试发现,例如我要保存8k数据也就是1s的数据,那保存数据的时间间隔也应该是1s,可是测试的却不是1s,远远小于1s,应该是我写的程序有问题,刚接触,也不是很会。希望大家帮帮忙!谢谢!
for (int i=0;i<wCount;i++)//wCount是串口缓冲区数据长度
{
*(lpbuffer)=str[i];
lpbuffer++;
Dcount++;
if (Dcount==save1Length)
{
sprintf(s, "d:pcount_%d.txt", pcount);
pcount= pcount+1;
if ((fp=fopen(s,"w"))==NULL)
{
printf("错误\n");
exit(1);
}//打开文件
liTime2.QuadPart =liTime1.QuadPart;//上一次时间赋值给历史时间
// 获取当前时间
QueryPerformanceCounter(&liTime1);
// 计算持续时间(us)
T = 1000 * ( liTime1.QuadPart- liTime2.QuadPart) / liQPF.QuadPart;
fprintf(fp,"%d ",T);
for (int i=0;i<=save1Length;i++)
{
fprintf(fp,"%x",buffer[i]);
}//保存数据
//fprintf(fp,"%x/n",mData->wBuffer64K1[65535]);
fclose(fp);
lpbuffer=buffer;//指针回归原位置
Dcount=0;//计数值归零
}
保存数据这样写可以吗,我从网上也没找到合适的参考资料,很疑惑。
...全文
相关推荐
C#编写的串口数据接收保存
该项目是一个基于C#开发的Windows窗体应用程序,用于实现串口数据的接收、显示和保存。程序通过SerialPort类配置串口参数并监听数据输入,支持从COM1到COM4中选择端口,利用事件机制实时
如何使用C#快速构建高效的上位机系统
摘要:本文介绍了使用C#构建高效上位机系统的关键技术与方法,涵盖数据采集(串口/TCP通信)、实时显示(Chart控件)、性能优化(异步编程、缓存处理)及系统架构设计(三层/四层架构)。重点讲解了如何通过C#实现硬件通信、UI优化和远程控制,适用于工业自动化、物联网等场景,帮助开发者快速构建稳定可靠的上位机应用。
C#上位机从0到1:WinForms+串口通信,搭建工业数据采集系统(保姆级)
工业场景中,传感器、PLC、智能仪表等设备大多通过RS232/RS485串口上手快:拖拽式UI设计,无需复杂前端知识;兼容性强:支持Windows XP/7/10/11,适配工业现场老旧电脑;串口支持完善:.NET内置库,无需额外依赖;轻量高效:程序体积小,运行占用资源少,适合工业嵌入式PC。本教程从环境搭建→UI设计→串口通信→数据解析→实时显示→数据存储→异常处理,全程保姆级步骤,新手也能跟着实现一套可落地的工业数据采集系统。
接收串口数据并将数据保存
本项目"接收串口数据并将数据保存"是针对数据采集卡的一种实践应用,其目标是实时接收并记录从串口接收到的数据。1.
C#上位机串口接收数据并绘图
综上所述,通过C#上位机编程,我们可以实现串口通信,接收下位机(如FPGA频率计)发送的数据,并利用绘图功能将这些数据实时展示为曲线图表。


