C#串口通信-串口相关参数介绍

串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种双向通讯方式。

串口是一种接口标准,它规定了接口的电气标准,没有规定接口插件电缆以及使用的通信协议,通信协议很多,可根据实际情况选择和自定义。

目录

串口相关参数介绍

1、端口(COM口)

CMO口(Communication Module Outlet)是一种用于连接计算机和外部设备的接口,也称为串行端口,简称CMO口,常见串口通讯有一般电脑应用的RS-232(使用 25 针或 9 针连接器)和工业电脑应用的半双工RS-485与全双工RS-422。

电脑端口查看:设置->系统->关于->设备管理器->端口

2、波特率(BaudRate)

波特率是一个电子信号上的术语,用于描述信道的数据传输速度。单位是bit/s,常见的9600波特率表示每秒传输9600个比特位,1个字节8位,9600/8=1200,代表每秒钟串口可传输1200个字节(不考虑起始位、停止位、校验位的情况下)。

注意:

  • 波特率如果太高会导致传输数据不稳定,一般使用9600;
  • 发送端与接收端波特率不一致会导致数据不一致;

3、起始位

  • 起始位必须是持续一个比特时间的逻辑0电平,标志传输一个字符的开始,接收方可用起始位使自己的接收时钟与发送方的数据同步;
  • C#开发中一般不需要设置起始位。

4、停止位(StopBits)

  • 停止位可以是是1位、1.5位或2位,可以由软件设定,它一定是逻辑1电平,标志着传输一个字符的结束;
  • C#开发中一般通过StopBits枚举类型设置停止位,枚举值包括None、One、Two、OnePointFive四种(通常若设备不指定,默认停止位为1位)。

5、数据位

  • 数据位紧跟在起始位之后,是通信中的真正有效信息。数据位的位数可以由通信双方共同约定,一般可以是5位、7位或8位;
  • C#开发中若设备不指定,默认数据位为8位。

6、校验位

  • 校验位仅占一位,用于进行奇校验或偶校验,检验位不是必须有的。如果是奇校验,需要保证传输的数据总共有奇数个逻辑高位;如果是偶校验,需要保证传输的数据总共有偶数个逻辑高位;
  • C#开发中通常使用Parity枚举类型来设置校验位,有五种,日常开发中使用最多的是None无校验、Odd奇校验、Even偶校验。

7、缓存区

串口包括两个缓存区,发送缓存区和接收缓存区;

  • 发送缓存区:(软件)发送数据时将数据先存在发送缓存区,再通过(硬件)串口发送出去;
  • 接收缓存区:接收数据时先将数据存在接收缓存区,(软件)再从中读取数据;
相关推荐
kylezhao20192 分钟前
C#序列化与反序列化详细讲解与应用
c#
JQLvopkk5 分钟前
C# 实践AI :Visual Studio + VSCode 组合方案
人工智能·c#·visual studio
Max_uuc9 分钟前
【C++ 硬核】打破嵌入式 STL 禁忌:利用 std::pmr 在“栈”上运行 std::vector
开发语言·jvm·c++
故事不长丨9 分钟前
C#线程同步:lock、Monitor、Mutex原理+用法+实战全解析
开发语言·算法·c#
牵牛老人12 分钟前
【Qt 开发后台服务避坑指南:从库存管理系统开发出现的问题来看后台开发常见问题与解决方案】
开发语言·qt·系统架构
kingwebo'sZone15 分钟前
C#使用Aspose.Words把 word转成图片
前端·c#·word
froginwe1120 分钟前
Python3与MySQL的连接:使用mysql-connector
开发语言
灵感菇_39 分钟前
Java HashMap全面解析
java·开发语言
杜子不疼.40 分钟前
PyPTO:面向NPU的高效并行张量编程范式
开发语言
lly20240641 分钟前
C# 结构体(Struct)
开发语言