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、缓存区

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

  • 发送缓存区:(软件)发送数据时将数据先存在发送缓存区,再通过(硬件)串口发送出去;
  • 接收缓存区:接收数据时先将数据存在接收缓存区,(软件)再从中读取数据;
相关推荐
小码编匠3 分钟前
WinForm 中也可以这样做数据展示
windows·后端·c#
AmazingKO12 分钟前
【够用就好008】开新坑自学esb32烧录进军物联网和嵌入式
人工智能·python·物联网·chatgpt·github·方方上土·aigc创意人竹相左边
sakoba25 分钟前
spring IOC(实现原理)
java·开发语言
MZWeiei26 分钟前
Scala:在哪里写类的属性?类的属性必须私有吗?类的必须初始化吗?
开发语言·scala
闯闯桑27 分钟前
Scala 中的访问修饰符
大数据·开发语言·scala
我不是代码教父27 分钟前
[原创](Modern C++)现代C++的关键性概念: 非常独特的std::sentinel_for概念(哨兵概念)
开发语言·c++·sentinel
不爱学习的小枫32 分钟前
scala函数的至简原则
开发语言·scala
YGGP1 小时前
【每日八股】Golang篇(二):关键字(上)
开发语言·后端·golang
꧁坚持很酷꧂1 小时前
QT登录系统界面
开发语言·qt
ErizJ1 小时前
Golang | Gin(简洁版)
开发语言·golang·gin