/********************** 串口数据接收事件 *****************************/
private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
UTF8Encoding uTF8Encoding = new UTF8Encoding();
byte[] readBytes = new byte[this.SerialPort.BytesToRead];
int num = this.SerialPort.Read(readBytes, , readBytes.Length);
this.builder.Clear();//清空缓存
this.received_count += (long)num;//加接收计数
this.rxtextBox.Invoke((EventHandler)delegate
{
if (!this.rxcharSetup.Checked)//判断接收数据的格式
{ //获取字符长度
for (int i = ; i < readBytes.Length; i++)
{
byte b = readBytes[i];//显示十六进制
this.builder.Append("0x" + b.ToString("X2") + " ");
}
}
else
{ //显示字符格式
this.builder.Append(Encoding.GetEncoding("GB2312").GetString(readBytes));
}
this.rxtextBox.SelectionStart = this.rxtextBox.TextLength;
this.rxtextBox.AppendText(this.builder.ToString());
this.rxnumdata.Text = "Rx " + this.received_count.ToString();
//更新发送计数
});
}
  /********************** 发送按钮 *****************************/
private void senddata_Click(object sender, EventArgs e)
{
if (!this.SerialPort.IsOpen)
{
MessageBox.Show("串口未打开!!!", "警告");
}
else
{
int num;
if (this.txdataSetup.Checked)
{
MatchCollection matchCollection = Regex.Matches(this.txtextBox.Text, "(?i)[\\da-f]{2}");
List<byte> list = new List<byte>();
foreach (Match match in matchCollection)
{
list.Add(byte.Parse(match.Value, NumberStyles.HexNumber));
}
this.SerialPort.Write(list.ToArray(), , list.Count);
num = list.Count;
}
else
{
this.SerialPort.WriteLine(this.txtextBox.Text);
num = this.txtextBox.Text.Length + ;
}
this.send_count += (long)num;
this.txnumdata.Text = "Tx " + this.send_count.ToString();
//更新接收计数
}
}

c# 串口发送接收数据的更多相关文章

  1. C# 模拟串口发送接收

    一.准备虚拟串口驱动工具 创建俩个虚拟串口,如图: 二.创建两个控制台程序 模拟串口的发送接收数据 1. 接收数据,代码如下: //遍历串行端口名称数组 foreach (string port in ...

  2. 【小梅哥FPGA进阶教程】串口发送图片数据到SRAM在TFT屏上显示

    十五.串口发送图片数据到SRAM在TFT屏上显示 之前分享过rom存储图片数据在TFT屏上显示,该方法只能显示小点的图片,如果想显示TFT屏幕大小的图片上述方法rom内存大小不够.小梅哥给了个方案,利 ...

  3. Winform串口编程---接收数据demo(VSPD虚拟串口)

    参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970  https://blog.csdn.net/kevin_io ...

  4. 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制

    安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程?  详细代码介 ...

  5. 网络编程--使用UDP发送接收数据

    package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...

  6. 网络编程--使用TCP协议发送接收数据

    package com.zhangxueliang.tcp; import java.io.IOException; import java.io.OutputStream; import java. ...

  7. STM32 串口USART DMA方式发送接收数据

    硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 头文件 USART3_DR的地址 DMA的通道 DMA的中断 USART接收回调函数 头 ...

  8. Qt串口通信接收数据不完整的解决方法

    在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不 ...

  9. Qt串口通信接收数据不完整的解决方法(传输图片)

    在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不 ...

随机推荐

  1. VS2013 单元测试(使用VS2013自带的单元测试)

    本文是官方文档的学习笔记,官方文档在这里. 1.打开VS3013,随便建一个解决方案,比如叫:LearnUnitTest,建一个类库项目LearnUnitTest_Bank,该项目中添加一个BankA ...

  2. 经典sql总结(1)

    1.表示info 信息,字段为Id和res,如何得到如下结果

  3. vijosP1289 老板娘的促销方案

    vijosP1289 老板娘的促销方案 链接:https://vijos.org/p/1289 [思路] 组合公式+高精度. 如果n-m<2则无解. 否则对于第一个询问:ans=C(n-m,2) ...

  4. 文件同步工具BT Sync介绍和使用说明

    BT Sync介绍 BT 下载,相信大伙儿都知道的.今儿个要介绍的 BT Sync,跟 BT 下载一样,都是 BitTorrent 公司发明滴玩意儿,都是采用 P2P 协议来进行传输. 简而言之,BT ...

  5. ural 1748 The Most Complex Number 和 丑数

    题目:http://acm.timus.ru/problem.aspx?space=1&num=1748 题意:求n范围内约数个数最多的那个数. Roughly speaking, for a ...

  6. Codeforces Round #341 (Div. 2) ABCDE

    http://www.cnblogs.com/wenruo/p/5176375.html A. Wet Shark and Odd and Even 题意:输入n个数,选择其中任意个数,使和最大且为奇 ...

  7. sublime text高亮less

    1.打开sublime,ctrl+shift+p打开命令面板,找到package control:install Package,然后选择less2css,回车. 2.继续ctrl+shift+p打开 ...

  8. [Javascript] The Array map method

    One very common operation in programming is to iterate through an Array's contents, apply a function ...

  9. 参加魅族 flyme 互联网编程大赛的一些感受

    为期两天的 flyme 编程大赛已经结束了,自己也在这次大赛中深有感触,受益颇丰. 在这次大赛里,认识到了很多厉害的开发者,有单打独斗的,也有四五成群的.开幕致辞上看到很多非常有创意的点子,感觉每个队 ...

  10. 关于U3D画面出现卡顿的问题

    在U3D中,曾近遇到过卡顿的问题,下面说明解决方法 一:在关于相机移动的函数中,移动的函数不应该放在Update里面应该放到LateUpdate 二:如果最开始建立项目的时候选择的时候是3D游戏,如果 ...