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()信号在串口读到起始标志时立即发送,并不 ...
随机推荐
- C(n,k)在n个不重复数中获得k个数
//比如在数组a[]={1,7,89,87} 中k=2的时候 组合为 C(4,2)=6 package 再次开始; import java.util.ArrayList; //本次实现的是在n个不重复 ...
- 多线程归并排序(摘自githhub)
package com.rationalcoding.sort; import java.util.ArrayList; import java.util.Arrays; import java.ut ...
- JavaScript性能优化:度量、监控与可视化1
HTTP事务所需要的步骤: 接下来,浏览器与远程Web服务器通过TCP三次握手协商来建立一个TCP/IP连接,类似对讲机的Over(完毕) Roger(明白) TCP/IP模型 TCP即传输控制协议( ...
- Hadoop学习记录(5)|集群搭建|节点动态添加删除
集群概念 计算机集群是一种计算机系统,通过一组松散继承的计算机软件或硬件连接连接起来高度紧密地协作完成计算工作. 集群系统中的单个计算机通常称为节点,通过局域网连接. 集群特点: 1.效率高,通过多态 ...
- Python模块导入及使用经验回顾 [ 持续更新 ]
1,若需要导入的模块并不是一个简单的*.py文件,而是在Lib目录下的一个文件夹,则要注意检查这个文件夹下有无__init__.py文件(该文件虽然经常为空,但是缺失该文件,对模块的导入有很大的影响) ...
- linux下编译安卓ffmpeg
本次编译属于2013年6月项目的一部分,重新修改使用. 为统一工程版本 ffmpeg版本为1.2.1 本次的目录结构为 工程目录/jni/Android.mk 工程目录/jni/Application ...
- oc学习之路----代理模式
今天刚学完oc的代理模式,觉得有点新奇,第一次接触,原理 A完成一件事,但是自己不能完成,于是他找个代理人B 替他完成这个事情,他们之间便有个协议 (protocol),B继承该协议来完成A代理给他的 ...
- 1515:打印1到最大的N位数 @jobdu
题目1515:打印1到最大的N位数 时间限制:1 秒 内存限制:128 兆 特殊判题:否 提交:625 解决:323 题目描述: 给定一个数字N,打印从1到最大的N位数. 输入: 每个输入文件仅包含一 ...
- Node.js初级
package.json文件字段说明 name:包名.包名是唯一的,只能包含小写字母.数字和下划线. version:包版本号. description:包说明. keywords:关键字数组.用于搜 ...
- Asp.net Mvc 自定义Session (一),
大家都知道用系统默认的session 会存在这样的问题 如果用户过多的话 session 会自动消亡,而且不能支持分布式和集群. 这系列博客主要讲解 怎样 解决用户过多的session自动消亡,和分 ...