/********************** 串口数据接收事件 *****************************/
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. Java笔记(六)……程序流程控制

    判断结构 三种结构: 1: if(条件表达式) 2: { 3: 执行语句; 4: } 5:  6: if(条件表达式) 7: { 8: 执行语句; 9: } 10: else 11: { 12: 执行 ...

  2. java中String、StringBuilder、StringBuffer三者的区别

    在Java项目开发中,字符串是最长使用的数据类型,而有关字符串的String.StringBuilder.StringBuffer三者又常常让人分不清楚什么时候该使用哪个. 特此整理一下. Strin ...

  3. Detect combined string

    写一个程序判断字符串A是否为其他两个字符串的组合,组合过程中其他两个字符串的相对顺序不能被破坏. 举例说明:abc和def可以组成字符串adebcf,但不能组成aefbcd,因为def的相对顺序已经被 ...

  4. J2EE开发常用开源框架技术(转)

    主要就我所了解的J2EE开发的框架或开源项目做个介绍,可以根据需求选用适当的开源组件进行开发.主要还是以Spring为核心,也总结了一些以前web开发常用的开源工具和开源类库 1持久层:1)Hiber ...

  5. HDU5366 The mook jong (DP)

    The mook jong 问题描述 ZJiaQ为了强身健体,决定通过木人桩练习武术.ZJiaQ希望把木人桩摆在自家的那个由1*1的地砖铺成的1*n的院子里.由于ZJiaQ是个强迫症,所以他要把一个木 ...

  6. canvas createRadialGradient 用法

    径向渐变,就是环形的渐变了,由圆心(或者是较小的同心圆)开始向外扩散渐变的效果,听着有些抽象,往下看图一下子就明白了.线性渐变指定了起点和终点,径向渐变则指定了开始的结束园的圆心和半径.这里使用cre ...

  7. jQuery获取鼠标移动方向2

    (function($) { $.fn.extend({ show: function(div) { var w = this.width(), h = this.height(), xpos = w ...

  8. vim: 自己定义颜色主题(colorscheme)

    命令模式下输入 :hi[ghlight] 能够看到当前vim的着色风格 命令模式下输入 :sy[ntax] 能够看到当前语法加亮模式,当文档的文字与列表里的正則表達式匹配时,vim会给文字着色.应用缩 ...

  9. 系统数据文件和信息之附加组ID

    4.2BSD引入了附加组ID(supplementary group ID)的概念.我们不仅可以属于口令文件记录项中组ID所对应的组,也可属于多达16个另外的组.文件访问权限检查相应被修改为:不仅将进 ...

  10. ecto注册码

    First name: Good Last name: Life Serial: ecto_at585-RP00-MP3F-VB8R-L82N-N0CC   First Name: The Last ...