C#串口通信从入门到精通(2)——串口相关参数介绍

文章目录

前言

本文是我开设的专栏《C#串口通信从入门到精通》中的一篇介绍串口相关参数的文章,希望能够帮助大家更好的掌握串口通信。

1、作者简介

本人2017年硕士毕业,一直从事自动化行业的上位机软件开发,目前以高级工程师的职位任职,年薪三十五万+,串口通信的项目大大小小做过几百个(工作和兼职),我开设的专栏《C#串口通信从入门到精通》一定是我多年实战经验总结,学完这套课程,串口通信以后对你都是信手拈来,光串口通信做做兼职,一年几千几万也是轻轻松松。

2、串口相关参数介绍

2.1端口号(Port)

我们使用一个串口的时候,首先是要打开这个串口,那么我们怎么知道电脑上现在支持几个串口呢?对应的端口号又是什么呢?
由于我的电脑系统是window11,下面就以window11为例介绍如何查看电脑上现在有几个串口(windows7、window10类似)
第1步、在电脑桌面上,右击“此电脑”,或者“计算机”,或者“我的电脑”,点击鼠标右键,在弹出的窗体中找到“属性”,鼠标左键点击“属性”,如下图:
在这里插入图片描述
在这里插入图片描述
第2步、找到“设备管理器”,鼠标左键点击“设备管理器”,如下图:
在这里插入图片描述
在这里插入图片描述

第3步、鼠标左键点击“端口”,如下图:
在这里插入图片描述
我这里有两个虚拟串口,因为我用的笔记本电脑,笔记本电脑一般是没有自带的串口的,所以我用虚拟串口软件虚拟了一对串口,通过虚拟串口工具就能解决本身的电脑没有串口的问题,关于虚拟串口的使用,请点击我的专栏的这篇文章:《C#串口通信从入门到精通(3)——虚拟串口工具的使用》,如果是工控机的话,能直接看到COM1这种。所以通过这种方式,我们找到了电脑的支持的串口,后面我们才能使用软件打开相应的串口,当然我也会在专栏的这篇文章介绍如何通过程序自动寻找电脑现在支持的串口,请点击专栏的这篇文章:C#串口通信从入门到精通(5)——打开、关闭串口

2.2 波特率

波特率比较常见的9600,它的单位是bit/s,代表的是每秒中传递9600个bit,一个bit也成为了1位,以后的文章中都叫位,对应的就是计算中的高、低电平,高电平代表的就是值1,低电平代表的就是0,一个bit它的值可能是1,也可能是0。并且这里要引入一个字节的概念,因为串口通信中我们和字节打交道是最多的,那么我们要记着字节和位的关系,一个字节是有8位,一般从左边是最高位,右边是最低位,所以9600bit/s对应的传输效率大概是9600/8=1200个字节,代表串口每秒钟能传输1200个字节,当然这里我用的是大概1200个字节,因为这里我没有考虑停止位、开始位、校验位,知道是大概等于就好。关于波特率要记住以下几点:
1)波特率代表是串口传输数据的能力,波特率越高传输数据越高,但是波特率不是越高越好,太高的话会出现传输数据不稳定的问题,所以一般使用9600的居多。
2)发送方和接收方的波特率必须保持一致,否则就会出现发出去的数据和接收的数据不一致的情况。

2.3 起始位

在c#开发中,不需要设置起始位

2.4 数据位

一般情况下数据位有7位、8位两种,使用最多的是8位,除非设备指定数据位为7位,否则我们在软件开发中默认该值就是8

2.5 停止位

在c#开发中,使用StopBits这个枚举类型来设置停止位,如下图:可以看出停止位有None、One、Two、OnePointFive四种,使用最多的是One,除非设备指定,否则我们在软件开发中默认该值就是One,对应的在代码中设置为StopBits.One
在这里插入图片描述

2.6 校验位

在c#开发中,使用Parity这个枚举类型来设置校验位,如下图:当前一共有五种,None就是无校验,Odd是奇校验,Even是偶校验,在日常开发中使用最多的是None、Odd、Even,并且如果没有特殊要求,比如我们自己平时在测试的过程中使用Node无校验即可。
在这里插入图片描述

2.7 发送缓冲区

串口使用时一般包含两个缓冲区,发送缓冲区和接收缓冲区,对于发送缓冲区。发送数据时,先将数据存在发送缓冲区,然后通过串口发送,相当于我们软件所做的工作是把数据发送到发送缓冲区,然后硬件自己把缓冲区的数据发出去。

2.8 接收缓冲区

串口使用时一般包含两个缓冲区,发送缓冲区和接收缓冲区,对于接收缓冲区,接收数据时,先将接收的数据存在接收缓冲区,然后再进行读取,我们软件做的也是从接收缓冲区中读取数据。

3、串口助手SComTool1.1介绍

SComTool1.1是我开发的一个串口助手,主要帮助学习《C#串口通信从入门到精通》专栏的学员更好的理解串口通信,当然我的专栏的内容是远远多余这个串口通信助手的,SComTool1.1是锦上添花,SComTool1.1的功能如下

3.1 串口设置

串口设置主要是Com口的选择,波特率、校验位、数据位、停止位的设置,以及打开和关闭串口,关于串口设置中涉及的参数内容参考专栏文章:C#串口通信从入门到精通(2)——串口相关参数介绍、关于打开、关闭串口参考专栏文章:C#串口通信从入门到精通(5)——打开、关闭串口
在这里插入图片描述

3.2 发送设置

3.2.1 手动发送

手动发送就是点击“手动发送”按钮,就会将“发送区”的内容发送出去,只发送一次,关于串口发送,参考专栏文章:C#串口通信从入门到精通(6)——串口发送数据(字符串、16进制、图片等文件)

3.2.2 定时发送

定时发送就是,按照一定的周期时间(周期时间也在软件中可设置,单位为毫秒)循环发送“发送区”的内容,当你点击“停止自动发送”时才会停止自动发送,如下图:
在这里插入图片描述

3.2.3 发送16进制

发送设置中可以选择发送16进制发送,关于16进制参考专栏文章:C#串口通信从入门到精通(9)——二进制、八进制、十进制、十六进制(HEX)、字节、位之间的关系

3.2.4 发送ASCII

发送设置中可以选择发送ASCII字符串,关于ASCII参考专栏文章:C#串口通信从入门到精通(10)——什么是ASCII、UTF8、Unicode、GB2312

3.2.5 清除发送区

点击“清除发送区”按钮即可将发送区的内容全部清空

3.3 接收设置

接收设置区如下图:
在这里插入图片描述

3.3.1 接收16进制

选择该选项可将数据以16进制显示,如下图:
在这里插入图片描述

3.3.2 接收ASCII

勾选该选项后将接收数据以ASCII字符串显示,详细可参考专栏文章:C#串口通信从入门到精通(8)——串口接收数据(字符串、16进制、图片等文件)

3.3.3 存储到本地txt

勾选该选项后,可将接收到的数据存储到txt文件,详细内容可参考专栏文章:C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

3.3.4 清空接收区

点击“清空接收区”就会将已经接收到的数据全部清空

3.4 波形设置

关于波形设置详细内容,可参考专栏文章:C#串口通信从入门到精通(12)——串口接收的数据以曲线显示

3.4.1 波形起始字节

起始字节指的是从哪个字节开始显示波形:假设接收到了4个字节,我设置了起始字节为2,那么显示波形的时候第一个字节就不显示,从第二个字节开始显示

3.4.2 波形字节个数

波形字节个数指的是显示几条波形:假设一共接收到了4个字节,我设置波形起始字节为1,波形字节个数为2,那么波形就会有两条,并且一条解析的是第1个字节,另一条解析的是第2个字节,如下图:在这里插入图片描述
上图中红色代表波形1,它解析的就是第一个字节的数据;绿色代表波形2,它解析的就是第二个字节。

3.4.3 设置波形宽度

波形宽度指的是波形曲线的宽度,如下图箭头所指:
在这里插入图片描述

3.4.4 显示Y轴数值

该选项设置是否显示每个点的Y坐标值,如下图箭头所指:
在这里插入图片描述

3.4.5 显示点标记

该选项设置是否用“圆形”标记每个坐标点,如下图箭头所指:
在这里插入图片描述

3.4.6 显示波形

该选项如果不勾选,则不显示波形

3.4.7 设置波形颜色

该选项用于设置波形起始字节所在的曲线的颜色,点击“设置波形颜色”会弹出一个颜色设置对话框,如下图:
在这里插入图片描述

4、《C#串口通信从入门到精通》专栏内容介绍

C#串口通信从入门到精通》专栏文章如下(更多文章持续更新中),点击下面的文章链接即可转到该文章:

1、C#串口通信从入门到精通(1)——硬件接线

2、C#串口通信从入门到精通(2)——串口相关参数介绍

3、C#串口通信从入门到精通(3)——虚拟串口工具的使用

4、C#串口通信从入门到精通(4)——串口调试助手的使用

5、C#串口通信从入门到精通(5)——打开、关闭串口

6、C#串口通信从入门到精通(6)——串口发送数据(字符串、16进制、图片等文件)

7、C#串口通信从入门到精通(7)——数据转换工具类的使用教程

8、C#串口通信从入门到精通(8)——串口接收数据(字符串、16进制、图片等文件)

9、C#串口通信从入门到精通(9)——二进制、八进制、十进制、十六进制(HEX)、字节、位之间的关系

10、C#串口通信从入门到精通(10)——什么是ASCII、UTF8、Unicode

11、C#串口通信从入门到精通(11)——串口接收的数据存储到本地文件(txt、csv)

12、C#串口通信从入门到精通(12)——串口接收的数据以曲线显示

13、C#串口通信从入门到精通(13)——多个串口发送数据

14、C#串口通信从入门到精通(14)——多个串口接收数据

15、C#串口通信从入门到精通(15)——流量控制(XON/XOFF协议实现)

16、C#串口通信从入门到精通(16)——累加和校验(CheckSum)原理与C#代码实现

17、C#串口通信从入门到精通(17)——纵向冗余校验(LRC)原理与C#代码实现

18、C#串口通信从入门到精通(18)——异或校验(BCC)原理与C#代码实现

19、C#串口通信从入门到精通(19)——模2除法的原理与计算过程

20、C#串口通信从入门到精通(20)——位运算原理

21、C#串口通信从入门到精通(21)——一个串口多线程发送数据

22、C#串口通信从入门到精通(22)——一个串口多线程接收数据

23、C#串口通信从入门到精通(23)——奇偶校验

24、C#串口通信从入门到精通(24)——循环冗余校验(CRC)原理与C#代码实现

25、C#串口通信从入门到精通(25)——整数/小数(浮点数)和字节数组互相转换

26、C#串口通信从入门到精通(26)——多个串口多个线程发送数据和接收数据

27、C#串口通信从入门到精通(27)——高速通信下解决数据处理慢的问题

5 、源码下载

5.1 如何获取SComTool1.1版本的源码

本文介绍的SComTool1.1版本的源码订阅专栏《C#串口通信从入门到精通》后,私信联系本人或者加入文章最下面的群可获取(提供博客名)
在这里插入图片描述

  • 11
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c#上位机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值