C# 串口通信

1. 导入

cs 复制代码
using System.IO.Ports;

2. 初始化定义

cs 复制代码
SerialPort sp = new SerialPort();
// 设置串口
sp.PortName = "COM3";  // 串口
sp.BaudRate = 9600;  // 波特率
sp.Parity = Parity.None;  // 校验位
sp.DataBits = 8;  // 数据位
sp.StopBits = StopBits.One;  // 停止位
// 打开串口
sp.Open();

3. 发送

cs 复制代码
sp.Write("Hello word\n");

4. 接收

  1. 需要在启动前设置(接收时回调方法)
cs 复制代码
sp.DataReceived += Sp_Shou;
  1. 方法
cs 复制代码
private void Sp_Shou(object sender, SerialDataReceivedEventArgs e){
// 获取发送过来字节大小
int size = sp.BytesToRead;
// 定义一个数组用来接收数据
byte[] data = new byte[size];
// data 0从第0开始读
sp.Read(data, 0, size);
// 将二进转换为 字符串
string msg1 = Encoding.ASCII.GetString(data); // 转换字符串
string msg2 = Encoding.Default.GetString(data); // 转换中文
}
相关推荐
Mr_Xuhhh15 小时前
YAML相关
开发语言·python
咖啡の猫16 小时前
Python中的变量与数据类型
开发语言·python
前端达人16 小时前
你的App消息推送为什么石沉大海?看Service Worker源码我终于懂了
java·开发语言
汤姆yu16 小时前
基于springboot的电子政务服务管理系统
开发语言·python
yangshuquan16 小时前
关于 C# 函数参数修饰符 out 和 in 的真相
c#·参数·in·修饰符·out
全栈师16 小时前
C#中控制权限的逻辑写法
开发语言·c#
S***q19216 小时前
Rust在系统工具中的内存安全给代码上了三道保险锁。但正是这种“编译期的严苛”,换来了运行时的安心。比如这段代码:
开发语言·后端·rust
打点计时器17 小时前
matlab 解决wfdb工具使用本地数据集报错
开发语言·matlab
zmzb010317 小时前
C++课后习题训练记录Day38
开发语言·c++
夏霞17 小时前
c# 使用vs code 创建.net8.0以及.net6.0 webApi项目的教程
开发语言·c#·.net