-
大小: 53KB文件类型: .zip金币: 1下载: 0 次发布日期: 2021-05-29
- 语言: C#
- 标签: c# serialport sample
资源简介
http://blog.csdn.net/wuyazhe/archive/2010/05/17/5598945.aspx
博客文章的配套代码。希望能帮助到你。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;
using System.Text.Regularexpressions;
namespace SerialportSample
{
public partial class SerialportSampleForm : Form
{
private SerialPort comm = new SerialPort();
private StringBuilder builder = new StringBuilder();//避免在事件处理方法中反复的创建,定义到外面。
private long received_count = 0;//接收计数
private long send_count = 0;//发送计数
public SerialportSampleForm()
{
InitializeComponent();
}
//窗体初始化
private void Form1_Load(object sender EventArgs e)
{
//初始化下拉串口名称列表框
string[] ports = SerialPort.GetPortNames();
Array.Sort(ports);
comboPortName.Items.AddRange(ports);
comboPortName.SelectedIndex = comboPortName.Items.Count > 0 ? 0 : -1;
comboBaudrate.SelectedIndex = comboBaudrate.Items.IndexOf(“9600“);
//初始化SerialPort对象
comm.NewLine = “\r\n“;
comm.RtsEnable = true;//根据实际情况吧。
//添加事件注册
comm.DataReceived += comm_DataReceived;
}
void comm_DataReceived(object sender SerialDataReceivedEventArgs e)
{
int n = comm.BytesToRead;//先记录下来,避免某种原因,人为的原因,操作几次之间时间长,缓存不一致
byte[] buf = new byte[n];//声明一个临时数组存储当前来的串口数据
received_count += n;//增加接收计数
comm.Read(buf 0 n);//读取缓冲数据
builder.Clear();//清除字符串构造器的内容
//因为要访问ui资源,所以需要使用invoke方式同步ui。
this.Invoke((EventHandler)(delegate
{
//判断是否是显示为16禁止
if (checkBoxHexView.Checked)
{
//依次的拼接出16进制字符串
foreach (byte b in buf)
{
builder.Append(b.ToString(“X2“) + “ “);
}
}
else
{
//直接按ASCII规则转换成字符串
builder.Append(Encoding.ASCII.GetString(buf));
}
//追加的形式添加到文本框末端,并滚动到最后。
this.txGet.AppendText(builder.ToString());
//修改接收计数
labelGetCount.Text = “Get:“ + received_count.ToString();
}));
}
private void buttonOpenClose_Click(object sender EventArgs e)
{
//根据当前串口对象,来判断操作
if (comm.IsOpen)
{
//打开时点击,则关闭串口
comm.Close();
}
else
{
//关闭时点击,则设置好端口,波特率后打开
comm.PortName = comboPortName.Text;
comm.BaudRate = int.Parse(comboBaudrate.Text);
try
{
comm.Open();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2010-05-16 02:19 SerialportSample\
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\
文件 890 2010-05-16 02:19 SerialportSample\SerialportSample.sln
文件 19456 2010-05-17 01:20 SerialportSample\SerialportSample.suo
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\bin\
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\bin\Debug\
文件 15872 2010-05-17 01:19 SerialportSample\SerialportSample\bin\Debug\SerialportSample.exe
文件 26112 2010-05-17 01:19 SerialportSample\SerialportSample\bin\Debug\SerialportSample.pdb
文件 11600 2010-05-17 01:00 SerialportSample\SerialportSample\bin\Debug\SerialportSample.vshost.exe
文件 490 2010-03-17 22:39 SerialportSample\SerialportSample\bin\Debug\SerialportSample.vshost.exe.manifest
文件 6110 2010-05-17 01:19 SerialportSample\SerialportSample\Form1.cs
文件 15770 2010-05-17 01:06 SerialportSample\SerialportSample\Form1.Designer.cs
文件 5817 2010-05-17 01:06 SerialportSample\SerialportSample\Form1.resx
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\obj\
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\obj\x86\
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\obj\x86\Debug\
文件 3408 2010-05-17 00:44 SerialportSample\SerialportSample\obj\x86\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6277 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 324 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\GenerateResource.read.1.tlog
文件 812 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\GenerateResource.write.1.tlog
文件 937 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\SerialportSample.csproj.FileListAbsolute.txt
文件 15872 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\SerialportSample.exe
文件 26112 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\SerialportSample.pdb
文件 180 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\SerialportSample.Properties.Resources.resources
文件 180 2010-05-17 01:19 SerialportSample\SerialportSample\obj\x86\Debug\SerialportSample.SerialportSampleForm.resources
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\obj\x86\Debug\TempPE\
文件 523 2010-05-16 03:24 SerialportSample\SerialportSample\Program.cs
目录 0 2010-05-16 02:19 SerialportSample\SerialportSample\Properties\
文件 1468 2010-05-16 02:19 SerialportSample\SerialportSample\Properties\AssemblyInfo.cs
文件 2858 2010-05-16 02:19 SerialportSample\SerialportSample\Properties\Resources.Designer.cs
文件 5612 2010-05-16 02:19 SerialportSample\SerialportSample\Properties\Resources.resx
............此处省略3个文件信息
- 上一篇:天猫推荐测试数据
- 下一篇:C# Ftp客户端源码
相关资源
- C# Ftp客户端源码
- 基于C#的图书馆Web系统
- C#WinForm获取子窗口返回值
- C#Winform温度计控件
- 使用C#登录带验证码的网站
- C#可视化动态汉诺塔实现
- C#写的LCS算法
- c# 重写的listbox 有比较好看的样式
- C#动态规划法解最少钱币问题
- 简单的c#用户登录程序
- c#基于apollo实现消息推送
- C# 基于ModBus RTU通讯协议,使用RS-485获
- C# 打印机案例
- 家庭理财系统设计与实现论文全部
- 电子琴C#
- 用c#编写打砖块
- C#从入门到精通 第3版 原书配套光盘资
- C#知识难点及遇到的困难疑点解答
- C#版的FtpClient客户端Socket实现(可以登
- C#控件属性事件大全
- C#源码电脑信息系统
- 动物识别专家系统
- wpf连接ACCESS数据库
- C#Form窗体编程贪吃蛇小游戏
- C#绘制直线与箭头
- USB盘符识别(C#)
- (C#)Windows Shell 外壳编程系列
- C#版USB通信编程(接收和发送数据)
- C# IP地址段端口扫描器
- C#用GDI+画图经典案例不下后悔
评论
共有 条评论