常驻嘉宾
- 积分
- 4034
- 威望
- 1474
- 贡献
- 914
- 兑换币
- 825
- 注册时间
- 2012-9-8
- 在线时间
- 823 小时
- 毕业学校
- 河海大学
|
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
using System.IO;
using System.IO.Ports;
using System.Threading;
using System.Collections;
using System.Timers;
namespace 上位机
{
public partial class Form1 : Form
{
// System.Windows.Forms.Timer t1;
string jieshou;
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)//"打开关闭串口"按钮
{
string CommNum = this.CKH.Text;
int IntBdr = Convert.ToInt32(this.BTL.Text);//将串口号和波特率存起来
if (!serialPort1.IsOpen)//如果串口是关闭的
{
serialPort1.PortName = CommNum;
serialPort1.BaudRate = IntBdr;//设定串口号和波特率
try //try:尝试下面的代码,如果错误就跳出来执行catch里面的代码
{
serialPort1.Open();//打开串口
serialPort1.DiscardNull = true;
button2.Text = "关闭串口";//改变按钮上的字符
CKH.Enabled = false;
BTL.Enabled = false;//将串口号和波特率空间关闭;
t1.Enabled = true;
}
catch
{
MessageBox.Show("串口打开失败!\n\n可能是串口已被占用");
}
}
else//打开的
{
serialPort1.Close();//关闭串口;
t1.Enabled = false;
button2.Text = "打开串口";
CKH.Enabled = true;
BTL.Enabled = true;//蒋串口号和波特率选择控件打开
}
}
private void button1_Click(object sender, EventArgs e)//发送数据按钮
{
if (serialPort1.IsOpen)
{
if (DATA.Text != "")//如果数据为空
{
serialPort1.Write(DATA.Text);
}
else
{
MessageBox.Show("发送失败");
}
}
else
{
MessageBox.Show("发送失败了");
}
}
public void sj(object sender, EventArgs e)
{
string x = DateTime.Now.ToString();
shijian.Text = x;
}
public void get(object sender, EventArgs e)
{
// t1.Enabled = false;
if (serialPort1.BytesToRead != 0)
{
byte[] buffer = new byte[serialPort1.BytesToRead];
serialPort1.Read(buffer, 0, buffer.Length);
jieshou = Encoding.ASCII.GetString(buffer);
string[] fenkai = jieshou.Split(new char[] { ';' });
for (int i = 0; i < fenkai.Length; i++)
{
if (fenkai[i]!=null)
textBox1.AppendText((fenkai[i] + ";"));
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
// t1 = new System.Windows.Forms.Timer();
t1.Interval = 1;
t1.Tick += new EventHandler(get);
t1.Enabled = false;
t2.Interval = 500;//选了一个定时器二
t2.Tick += new EventHandler(sj);//每隔0.5秒去吧时间读回来,并显示出来
t2.Enabled = true;
}
private void button3_Click(object sender, EventArgs e)
{
textBox1.Clear();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
// textBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right|
// System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Top)));
}
}
}
摄像头采集的数据格式是这样的:数据;数据;数据;数据;数据;……
串口显示的数据却是这样的:数据;数据;数据数据;数据;数据;;数据;……
————数据格式和上位机想要要求显示出来的不同,我想要显示的应该和发送的一样;
求大神帮忙,万分感谢。
咱们这些做车的不容易呀!!!!!
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|