c# 串口发送接收数据
/********************** 串口数据接收事件 *****************************/
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# 串口发送接收数据的更多相关文章
- C# 模拟串口发送接收
一.准备虚拟串口驱动工具 创建俩个虚拟串口,如图: 二.创建两个控制台程序 模拟串口的发送接收数据 1. 接收数据,代码如下: //遍历串行端口名称数组 foreach (string port in ...
- 【小梅哥FPGA进阶教程】串口发送图片数据到SRAM在TFT屏上显示
十五.串口发送图片数据到SRAM在TFT屏上显示 之前分享过rom存储图片数据在TFT屏上显示,该方法只能显示小点的图片,如果想显示TFT屏幕大小的图片上述方法rom内存大小不够.小梅哥给了个方案,利 ...
- Winform串口编程---接收数据demo(VSPD虚拟串口)
参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970 https://blog.csdn.net/kevin_io ...
- 安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制
安卓Socket连接实现连接实现发送接收数据,openwrt wifi转串口连接单片机实现控制 socket 连接采用流的方式进行发送接收数据,采用thread线程的方式. 什么是线程? 详细代码介 ...
- 网络编程--使用UDP发送接收数据
package com.zhangxueliang.udp; import java.io.IOException; import java.net.DatagramPacket; import ja ...
- 网络编程--使用TCP协议发送接收数据
package com.zhangxueliang.tcp; import java.io.IOException; import java.io.OutputStream; import java. ...
- STM32 串口USART DMA方式发送接收数据
硬件:stm32f103cbt6 软件:STM32F10x_StdPeriph_Lib_V3.5.0 文章目录 头文件 USART3_DR的地址 DMA的通道 DMA的中断 USART接收回调函数 头 ...
- Qt串口通信接收数据不完整的解决方法
在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不 ...
- Qt串口通信接收数据不完整的解决方法(传输图片)
在使用串口接收数据时,当数据量大的时候会出现数据接收不完整的情况.因为串口数据获取函数readAll()由readyRead()信号触发,但readyRead()信号在串口读到起始标志时立即发送,并不 ...
随机推荐
- 【CSS】Beginner5:Margins&Padding
1.Properties for spacing-out elements 外边距:A margin is the space space outside something 内边距:padding ...
- Mac Vim 如何设置高亮
首先进入如下目录 cd /usr/share/vim 然后打开vimrc sudo vim vimrc 在vimrc中的“set backspace=2”这行下插入如下代码: set ai " ...
- [Locked] Unique Word Abbreviation
Unique Word Abbreviation An abbreviation of a word follows the form <first letter><number&g ...
- windows 7 中将“我的电脑”锁定到任务栏
1.在桌面右击->新建->快捷方式 2.输入%SystemRoot%\explorer.exe /E,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}点击下 ...
- Headless MSBuild Support for SSDT (*.sqlproj) Projects [利用msbuild自动化部署 .sqlproj]- 摘自网络
Update: breaking change: http://sqlproj.com/index.php/2012/10/dacfx-sept-2012-updates-break-headless ...
- php tcp socket 学习汇总
推荐实例:PHP socket 深入浅出讲解:php的socket通信 基于socket.io的实时消息推送 php socket通信(tcp/udp) PHP向socket服务器收发数据 php实现 ...
- 关于easyui模拟win2012桌面的一个例子系列
最近时间比较充裕,想到之前领导问我,什么界面更适合公司这种屏幕小但是又要求可以同时处理更多的工作. 我感觉 windows是最合适的,毕竟微软已经做了这么多年的系统了,人的操作习惯已经被他们确定了. ...
- webpack文档
https://github.com/liunian/webpack-doc/blob/master/SUMMARY.md
- jQuery中get与eq的区别
get与eq的区别 .eq() 减少匹配元素的集合,根据index索引值,精确指定索引对象. .get() 通过检索匹配jQuery对象得到对应的DOM元素. 同样是返回元素,那么eq与get有什么区 ...
- zepto下动画返回顶部
function scroll(scrollTo, time) { var scrollFrom = parseInt(document.body.scrollTop) ...