采用中断方式的数据接收
2009-11-13 15:23
591 查看
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.IO.Ports;
using System.Windows.Forms;
namespace WindowsApplication6
{
public partial class Form1 : Form
{
public delegate void HandleInterfaceUpdateDelegate(string text);
private HandleInterfaceUpdateDelegate interfaceUpdateHandle;
public Form1()
{
InitializeComponent();
}
private void UpdateLabel(string text)
{
this.RevBox.Text = text;
}
private void Form1_Load(object sender, EventArgs e)
{
serialPort.BaudRate = 9600;
serialPort.PortName = "COM1";
if (!serialPort.IsOpen)
{
serialPort.Close();
serialPort.Open();
}
interfaceUpdateHandle = new HandleInterfaceUpdateDelegate(UpdateLabel);
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
serialPort.ReceivedBytesThreshold = 1;
}
private void SenBut_Click(object sender, EventArgs e)
{
serialPort.Write(this.SenBox.Text);
MessageBox.Show("数据发送成功", "系统提示");
}
private void RevBut_Click(object sender, EventArgs e)
{
MessageBox.Show("数据接收完毕", "系统提示");
}
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);
byte[] readBuffer = new byte[serialPort.ReadBufferSize];
serialPort.Read(readBuffer, 0, readBuffer.Length);
this.Invoke(interfaceUpdateHandle, new string[] { Encoding.UTF8.GetString(readBuffer) });
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Threading;
using System.IO.Ports;
using System.Windows.Forms;
namespace WindowsApplication6
{
public partial class Form1 : Form
{
public delegate void HandleInterfaceUpdateDelegate(string text);
private HandleInterfaceUpdateDelegate interfaceUpdateHandle;
public Form1()
{
InitializeComponent();
}
private void UpdateLabel(string text)
{
this.RevBox.Text = text;
}
private void Form1_Load(object sender, EventArgs e)
{
serialPort.BaudRate = 9600;
serialPort.PortName = "COM1";
if (!serialPort.IsOpen)
{
serialPort.Close();
serialPort.Open();
}
interfaceUpdateHandle = new HandleInterfaceUpdateDelegate(UpdateLabel);
serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);
serialPort.ReceivedBytesThreshold = 1;
}
private void SenBut_Click(object sender, EventArgs e)
{
serialPort.Write(this.SenBox.Text);
MessageBox.Show("数据发送成功", "系统提示");
}
private void RevBut_Click(object sender, EventArgs e)
{
MessageBox.Show("数据接收完毕", "系统提示");
}
private void serialPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
Thread.Sleep(500);
byte[] readBuffer = new byte[serialPort.ReadBufferSize];
serialPort.Read(readBuffer, 0, readBuffer.Length);
this.Invoke(interfaceUpdateHandle, new string[] { Encoding.UTF8.GetString(readBuffer) });
}
}
}
相关文章推荐
- 数据报的接收过程详解---从网卡到L3层(非NAPI,即接收数据采用中断方式)
- 数据报的接收过程详解---从网卡到L3层(非NAPI,即接收数据采用中断方式)
- 数据报的接收过程详解---从网卡到L3层(非NAPI,即接收数据采用中断方式)
- STM32使用串口IDLE中断的两种接收不定长数据的方式
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第三版;采用外部引脚中断方式获取中断,优化掉帧现象
- Biztalk采用Http方式接收数据配置方式
- STM8S003F使用IO口模拟串口(三)使用中断方式发送和接收数据
- 51单片机中用中断方式实现串口数据发送与接收
- dsp控制DM9000实现802.3数据收发第三篇,调试过程程序第二版;接受部分可用,但是容易掉帧,采用的读取dm9000中断寄存器的方式获取数据
- STM32CubeMX串口接收数据(中断方式,HAL库)
- STM32串行通讯采用中断方式发送,接收
- 某个数据通信系统采用CRC校验方式,并且生成多项式的二进制比特序列为11001,目的结点接收到的二进制比特序列为 110111001(含CRC校验码)。请判断传输过程中是否出现了差错?为什么?
- SpringMVC后台接收list类型的数据的实现方式
- express 4.x req.query(get方式) req.body(post方式) 接收浏览器发送过来的数据
- 61A与PC的RS232通信,接收以中断方式
- 串口中断接收方式详细比较
- struts2 lesson one: 的action特征,三种创建方法,action接收表单数据的三种访问,读取方式
- kafka direct 跟receiver 方式接收数据的区别
- kafka direct 跟receiver 方式接收数据的区别
- kafka direct 跟receiver 方式接收数据的区别