/********************** 串口数据接收事件 *****************************/
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. HW5.24

    import java.util.Calendar; public class Solution { public static void main(String[] args) { System.o ...

  2. HDU4417 - Super Mario(主席树)

    题目大意 给定一个数列,每次要求你查询区间[L,R]内不超过K的数的数量 题解 和静态的区间第K大差不多,这题是<=K,先建立好n颗主席树,然后用第R颗主席树区间[1,K]内数的数量减去第L-1 ...

  3. ural 1748 The Most Complex Number 和 丑数

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

  4. MySql避免全表扫描

    对查询进行优化,应尽量避免全表扫描,首先应考虑在where 及order by 涉及的列上建立索引: .尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLE tbl_name为 ...

  5. 注册表-恶意首页追踪之旅(IE不能改主页)

    恶意首页追踪之旅(先说下,360无法修复这个恶意首页) 话说,今天下了个扫站的工具,结果一不小心中了恶意广告! 中招后不停的乱下东西安装,360不停的在那弹出提示! 无语了,一个个卸载,把C:\win ...

  6. Duff and Weight Lifting - 587A

    题目大意:某个人训练举重,他每次可以举起来2^wi的重量,不过这个人比较懒所以他想尽量减少训练的次数,如果所有的训练重量2^a1 +2^a2+....2^ak = 2^x,那么这些重量可以一次性训练( ...

  7. ARM MIPS PowerPC比较

    ARM, MIPS, Power PC的比较   “ARM面向的低端消费类市场,拼的是功耗:PowerPC面向的是中高端市场,比的是性能,好像还没看到谁的手机是PowerPC的,也没有看到谁家企业级以 ...

  8. 【转】ST05

    一. SQL Trace 通过SQL跟踪,可以具体查询数据来源于哪些数据库表, 例如:可以查询某个交易(或几个交易)所涉及的数据库表. 为了减少在最终查询结果的工作量,要在屏幕显示你所要显示的数据的前 ...

  9. jQuery EasyUI, datagrid, treegrid formatter 参数比较 row index

    如题: datagrid中,见官方文档: formatter function The cell formatter function, take three parameter:value: the ...

  10. [AngularJS] angular-formly: Default Options

    angular-formly allows you to keep your forms as DRY as possible. TheoptionsTypes property is one way ...