com端口读取硬件数据解决思路
com端口读取硬件数据
我用硬件测量得到的数据,需要传到电脑上,在程序中要用里面的数据,该怎么弄?谁可以给个思路说下嘛?
------解决思路----------------------
http://download.****.net/detail/caesarx/4576926
就是DataReceived的事情
------解决思路----------------------
https://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport.datareceived.aspx
------解决思路----------------------
c#中有现成的SerialPort类可以用
串口通信有规范的,
根据约定,读写数据就可以了
具体可以搜“C# 串口编程”
有现成的代码可以修改
------解决思路----------------------
3楼+1。另外注意硬件的串口属性设置,接收到数据以后,按照设备的数据规范,解析数据
又一个初学者,加油。
------解决思路----------------------
上面提供的例程可以参考。
1、确认一下串口连接属性,比如9600,n,8,1在之后开发过程可能会用到
2、确认通信协议,为接收的数据进行协议解析
3、解析后的数据可以运用到你的程序中
4、当然如果程序要长期运行,需要做好异常控制等。对收到的异常数据要抛弃。
------解决思路----------------------
根据串口通讯标准获得数据然后解析
------解决思路----------------------
这是我写的读串口数据绘制曲线图的一段代码可以借鉴一下
------解决思路----------------------
硬件测量得到的数据,用回调方法传给程序,程序里面实现回调方法获得数据,然后存储使用。思路很清晰啊。
我用硬件测量得到的数据,需要传到电脑上,在程序中要用里面的数据,该怎么弄?谁可以给个思路说下嘛?
------解决思路----------------------
http://download.****.net/detail/caesarx/4576926
就是DataReceived的事情
------解决思路----------------------
https://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport.datareceived.aspx
------解决思路----------------------
c#中有现成的SerialPort类可以用
串口通信有规范的,
根据约定,读写数据就可以了
具体可以搜“C# 串口编程”
有现成的代码可以修改
------解决思路----------------------
3楼+1。另外注意硬件的串口属性设置,接收到数据以后,按照设备的数据规范,解析数据
又一个初学者,加油。
------解决思路----------------------
上面提供的例程可以参考。
1、确认一下串口连接属性,比如9600,n,8,1在之后开发过程可能会用到
2、确认通信协议,为接收的数据进行协议解析
3、解析后的数据可以运用到你的程序中
4、当然如果程序要长期运行,需要做好异常控制等。对收到的异常数据要抛弃。
------解决思路----------------------
根据串口通讯标准获得数据然后解析
SerialPort serialPort = new SerialPort();
serialPort.PortName = "COM1";
serialPort.BaudRate = 1200;
serialPort.Parity = (Parity)0;
serialPort.DataBits = 8;
serialPort.StopBits = (StopBits)1;
serialPort.Open();
var str = serialPort.ReadExisting();
------解决思路----------------------
这是我写的读串口数据绘制曲线图的一段代码可以借鉴一下
public void GetXK3190()
{
Thread thread = new Thread(new ThreadStart(getXK3190));
thread.IsBackground = true;
thread.Start();
}
private void getXK3190()
{
try
{
serialPort.PortName = "COM1";
serialPort.BaudRate = 1200;
serialPort.Parity = (Parity)0;
serialPort.DataBits = 8;
serialPort.StopBits = (StopBits)1;
serialPort.Open();
int i=0;
decimal ondecime=-1;
while (true)
{
var str = serialPort.ReadExisting();
Match m = Regex.Match(str, @"(?<=\=)[^=]*$");
if (m.Success)
{
WeighNumber = decimal.Parse(new String(m.Value.Reverse().ToArray()));
if (ondecime != -1 )
{
Point pit1 = new Point(i-1, Convert.ToInt32(ondecime));
Point pit2 = new Point(i, Convert.ToInt32(WeighNumber));
GdiPanel(0,0,i,180,20,pit1, pit2,this.panel1);
}
ondecime = WeighNumber;
i++;
}
Thread.CurrentThread.Join(100);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
------解决思路----------------------
硬件测量得到的数据,用回调方法传给程序,程序里面实现回调方法获得数据,然后存储使用。思路很清晰啊。