1643|1

1144

帖子

17

TA的资源

纯净的硅(高级)

楼主
 

基于【EVAL-ADICUP360】的毫欧计-上位机设计 [复制链接]

 

本来是准备用一个4.3寸的触摸屏来显示实时结果的,但由于出了点问题,只能做上位机,这样进度能够快点。

界面如图所示:

通过串口将数据显示出来。

 

代码比较简单:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.Threading;
using System.Reflection.Emit;

namespace Aducm360毫欧计
{
	public partial class Form1 : Form
	{
		List<string> bf = new List<string>();
		int offset;
		int LastAD = 0;

		SerialPort port;
		public Form1()
		{
			InitializeComponent();
		}

		private void btnRefresh_Click(object sender, EventArgs e)
		{
			ReloadComs();
		}
		void ReloadComs() { 
			cmbCom.Items.Clear();
			cmbCom.Items.AddRange(SerialPort.GetPortNames());
			if (cmbCom.Items.Count > 0)
			{
				cmbCom.SelectedIndex = 0;
			}
		}

		private void Form1_Load(object sender, EventArgs e)
		{
			ReloadComs();
		}

		private void btnConnction_Click(object sender, EventArgs e)
		{
			if (cmbCom.Text == "")
				return;
			if (port != null&&port.IsOpen)
				port.Close();
			port = new SerialPort(cmbCom.Text);
			port.BaudRate = 115200;
			port.DataReceived += Port_DataReceived;
			port.Open();
			
		}

		private void Port_DataReceived(object sender, SerialDataReceivedEventArgs e)
		{
			bf.Add(port.ReadExisting());
			var temp = new string(bf.SelectMany(n => n).ToArray());
			if (temp.EndsWith("\r\n")) { 
				var  temp2 = temp.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
				try
				{
					var num= UInt32.Parse(temp2.Last());
					//128
					LastAD =(int) num;
					bf.Clear();
				}
				catch { }
			}
		}

		private void timer1_Tick(object sender, EventArgs e)
		{
			if (LastAD == 0x001FFFFF)
			{
				labAD.Text = "开路";
				labRes.Text = "开路";
				return;
			}
			var new_value = LastAD - offset;
			labAD.Text = LastAD.ToString();
			labCal.Text = new_value.ToString();
			var res = 1200.0f / (float)0x001FFFFF * new_value;      //mV
			//实测电流 1.081mA
			labRes.Text =(0.001081f*res).ToString("0.0000毫欧 ")+ res.ToString("0.0000毫伏");		//1.081*r=v
		}

		private void btnZero_Click(object sender, EventArgs e)
		{
			offset = LastAD;
		}
	}
}

 

最新回复

上位机界面挺简洁的   详情 回复 发表于 2022-10-27 08:44
点赞 关注
 
 

回复
举报

6807

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

上位机界面挺简洁的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表