C#基于SerialPort类怎么实现串口通讯
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,本篇内容主要讲解"C#基于SerialPort类怎么实现串口通讯",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#基于SerialPort类怎么实现串口通
千家信息网最后更新 2025年01月23日C#基于SerialPort类怎么实现串口通讯
本篇内容主要讲解"C#基于SerialPort类怎么实现串口通讯",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C#基于SerialPort类怎么实现串口通讯"吧!
最终效果
窗体设置:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.IO.Ports;using System.Threading;using System.Windows.Forms;namespace SerialCommunication{ public partial class Form1 : Form { System.Threading.SynchronizationContext m_SyncContext = null; SerialPort serialPort = null; ToHexadecimalString toHexadecimalString = new ToHexadecimalString(); public Form1() { m_SyncContext = SynchronizationContext.Current; InitializeComponent(); } //Data initialization private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); SerialPortNumber.Items.AddRange(ports); SerialPortNumber.SelectedIndex = SerialPortNumber.Items.Count > 0 ? 0 : -1; BaudRateCom.Text = "9600"; //Set parameters CheckBitCom.Text = "None"; DataBitCom.Text = "8"; StopBitCom.Text = "One"; } //Send data private void Send_Click(object sender, EventArgs e) { try { //Send data and handle exceptions byte[] bytes = new byte[SendMessage.Text.Length]; bytes = Encoding.Default.GetBytes(SendMessage.Text); serialPort.Write(bytes, 0, bytes.Length); } catch (Exception error) { MessageBox.Show(error.Message); } } // Byte to hexadecimal string //Clear data private void Clear_Click(object sender, EventArgs e) { ReceiveMessage.Text = ""; } private void Open_Click(object sender, EventArgs e) { string portName = SerialPortNumber.Text; int buadRate = int.Parse(BaudRateCom.Text); Parity parity = 0; switch (CheckBitCom.Text) { case "None": parity = Parity.None; break; case "Odd": parity = Parity.Odd; break; case "Even": parity = Parity.Even; break; case "Mark": parity = Parity.Mark; break; case "Space": parity = Parity.Space; break; } int dataBit = int.Parse(DataBitCom.Text); StopBits stopBits = 0; switch (StopBitCom.Text) { case "None": stopBits = StopBits.None; break; case "One": stopBits = StopBits.One; break; case "Tow": stopBits = StopBits.Two; break; case "OnePointFive": stopBits = StopBits.OnePointFive; break; } try { if (Open.Text == "Open") { serialPort = new SerialPort(portName, buadRate, parity, dataBit, stopBits); serialPort.Open(); Open.Text = "Close"; } else if (Open.Text == "Close") { serialPort.Close(); Open.Text = "Open"; } } catch (Exception errror) { MessageBox.Show(errror.Message); } serialPort.DataReceived += onDataReceived; } private void onDataReceived(object sender, SerialDataReceivedEventArgs e) { try { Byte[] bytes = new byte[serialPort.BytesToRead]; serialPort.Read(bytes, 0, serialPort.BytesToRead); m_SyncContext.Post(new SendOrPostCallback((obj) => { ReceiveMessage.AppendText(Encoding.Default.GetString(bytes)); }), bytes); } catch (Exception error) { MessageBox.Show(error.Message); } } }}
到此,相信大家对"C#基于SerialPort类怎么实现串口通讯"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
串口
通讯
C#
内容
学习
实用
更深
兴趣
实用性
实际
操作简单
效果
方法
更多
朋友
窗体
网站
频道
查询
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全万人培训计划
软件开发服务销售清单
数据库原理实验及实训教程
软件开发五个主要step
怎样从其他表格内提取数据库
激战2几个服务器
上海vpn代理服务器
post服务器返回值
飞腾服务器怎么选择
网络技术交出令牌条件
前端软件开发岗位很忙吗
数据库提取数据用到哪个端口
安全客户端访问服务器
wow10区都有什么服务器
数据库中存储数据的列
狐表数据库
温州市哪里有招聘软件开发
关于网络安全的作文怎么写
海关 软件开发 网络管理
英特尔工作站和服务器
河南省网络安全应急预案
计算机网络技术与计算机应用技术
开学前 网络安全检查
服务器安全设置+十六
数据库服务名怎么查看
2018年三级网络技术报名
网络安全技术与应用贾铁军
软件开发特征词汇
前端软件开发岗位很忙吗
数据库还原3101