c# 中serialport学习(中断接收)

经过不停的看别人的代码,自己瞎写,修改,终于搞定了serialport的接收了!恩,用的是中断的方式

 

下面上代码

 

可以看出这个接收程序一共有鲜明的三段

第一段是设定serialport1的接收中断开(因为是搞单片机的,我就这么理解了...)

并且将中断子程序的名称设置为了DataReceived

 

第二段就是中断子程序了,当SerialDataReceived这个事件发生时,将串口缓冲区的存在的数据送给本函数里面的data,并通过

显示函数updateReceivedText()给他在Textbox里面显示出来;

 

第三段就是如何显示,这一段的Invoke方法我没有太明白,但下面两个函数还是介绍一下啦,就是将送给本函数的msg值给TextBox,

并将其添加到已有的数据后面,所以用的是.AppendText。

                                                      而.ScrollToCaret应该是将当前显示移动到刚刚变化的这一行来

我是这么理解的,哈哈。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SerialPortC# 用于串口通信的类。DataReceived 是 SerialPort的一个事件,用于在接收到数据时触发相应的操作。 当 SerialPort 对象接收到数据时,DataReceived 事件会自动触发。在事件处理程序,可以获取接收到的数据并进行相应的处理。例如,可以将数据显示在界面上,或者进行数据解析等操作。 以下是 DataReceived 事件的基本用法: 1. 创建 SerialPort 对象并设置相应的属性(如串口号、波特率等)。 2. 通过 DataReceived 事件添加事件处理程序。 3. 在事件处理程序,使用 SerialPort 对象的 Read 方法获取接收到的数据,并进行相应的处理。 以下是一个简单的示例代码: ``` private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { // 获取 SerialPort 对象 SerialPort sp = (SerialPort)sender; // 读取接收到的数据 string data = sp.ReadExisting(); // 在界面上显示数据 textBox1.Invoke(new Action(() => { textBox1.AppendText(data); })); } ``` 在该示例,当 SerialPort 对象接收到数据时,会触发 DataReceived 事件,该事件处理程序会将接收到的数据显示在一个 TextBox 控件。 需要注意的是,在使用 DataReceived 事件时,可能会出现数据接收不完整或者丢失的情况。为了避免这种情况,建议使用 SerialPort的 ReadLine 或者 ReadExisting 方法来读取数据,并根据具体情况进行相应的处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值