前言

SerilPort是串口进行数据通信的一个控件,今天博主教大家如何进行配置SerialPort对端进行通信。
虽然有点简单,大家有兴趣可以耐心看完,我会教大家用VS2019的快捷方法和使用代码的方法进行配置,大家不喜勿喷哈哈哈,创作不易。

每日一遍,防止早恋

1 使用Vs2019 快捷方法进行对SerialPort进行配置

1.1 新建窗体应用文件,创建Serialport控件

注意:如果你发现自己的工具箱里面没有Serialport这个控件,可能是你建错了窗体应用,这个窗体应用是(.NET framework)的文件,

1.2 认识需要配置的属性

BaseStream 获取SerialPort 对象的基础Stream 对象
BaudRate 获取或设置串行波特率
BreakState 获取或设置中断信号状态
BytesToRead 获取接收缓冲区中数据的字节数
BytesToWrite 获取发送缓冲区中数据的字节数
CDHolding 获取端口的载波检测行的状态
CtsHolding 获取“可以发送”行的状态
DataBits 获取或设置每个字节的标准数据位长度
DiscardNull 获取或设置一个值,该值指示Null 字节在端口和接收缓冲区之间传输时是否被忽略
DsrHolding 获取数据设置就绪(DSR) 信号的状态
DtrEnable 获取或设置一个值,该值在串行通信过程中启用数据终端就绪(DTR) 信号
Encoding 获取或设置传输前后文本转换的字节编码
Handshake   获取或设置串行端口数据传输的握手协议   
IsOpen   获取一个值,该值指示 SerialPort 对象的打开或关闭状态   
NewLine   获取或设置用于解释 ReadLine( )和WriteLine( )方法调用结束的值   
Parity   获取或设置奇偶校验检查协议
ParityReplace   获取或设置一个字节,该字节在发生奇偶校验错误时替换数据流中的无效字节 
PortName   获取或设置通信端口,包括但不限于所有可用的 COM 端口   
ReadBufferSize   获取或设置 SerialPort 输入缓冲区的大小   
ReadTimeout   获取或设置读取操作未完成时发生超时之前的毫秒数   
ReceivedBytesThreshold   获取或设置 
DataReceived 事件发生前内部输入缓冲区中的字节数   
RtsEnable   获取或设置一个值,该值指示在串行通信中是否启用请求发送 (RTS) 信号   
StopBits   获取或设置每个字节的标准停止位数
WriteBufferSize 获取或设置串行端口输出缓冲区的大小   
WriteTimeout   获取或设置写入操作未完成时发生超时之前的毫秒数

根据你的需求进行配置

1.3 Serialport具体配置

1.3.1 找到到需要的端口号,博主的是COM3

1.3.2 配置波特率,数据位,端口号

1.3.3 做一个简单的打开,需要发送接收看博主下一篇文章。

2 使用代码进行对SerialPort进行配置

2.1 先写一个活动串口扫描,实现自动扫描端口号

2.1.1 拖一个这样的窗口

2.1.2 双击串口扫描,写一个函数。

private void SearchAndAddSerialToComboBox(object sender, EventArgs e){string Buffer;comboBox1.Items.Clear();    //清初之前已经扫描的记录for (int i = 0; i < 20; i++){try{Buffer = "COM" + i.ToString(); //获得COM1-20serialPort1.PortName = Buffer;     //获取COM信息serialPort1.Open();                 //打开串口comboBox1.Items.Add(Buffer);comboBox1.Text = Buffer; //添加串口得到记录集serialPort1.Close();                 //关闭串口}catch { }}}

串口自动扫描效果

2.1.3 对波特率,数据位,校验位,停止位配置,先在ComboBox 里面添加选项


其他和这个步骤一样,小编把小编的配置值给大家:

波特率:
110
300
600
1200
2400
4800
9600
14400
19200
38400
56000
57600
115200
数据位:
6
7
8
校验位:
None
奇校验
偶校验
Mark
空格校验
停止位:
1
1.5
2

2.1.4 双击“打开”按钮 在函数里写好对应的配置,进行配置。

2.1.5 代码如下

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;namespace Serilport
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void SearchAndAddSerialToComboBox(object sender, EventArgs e){string Buffer;comboBox1.Items.Clear();    //清初之前已经扫描的记录for (int i = 0; i < 20; i++){try{Buffer = "COM" + i.ToString(); //获得COM1-20serialPort1.PortName = Buffer;     //获取COM信息serialPort1.Open();                 //打开串口comboBox1.Items.Add(Buffer);comboBox1.Text = Buffer; //添加串口得到记录集serialPort1.Close();                 //关闭串口}catch { }}}private void button4_Click(object sender, EventArgs e){try{serialPort1.PortName = comboBox1.Text;serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text, 10);serialPort1.DataBits = Convert.ToInt32(comboBox3.Text, 10);if (comboBox4.Text == "None") { serialPort1.Parity = Parity.None; }else if (comboBox4.Text == "奇校验") { serialPort1.Parity = Parity.Odd; }else if (comboBox4.Text == "偶校验") { serialPort1.Parity = Parity.Even; }else if (comboBox4.Text == "Mark") { serialPort1.Parity = Parity.Mark; }else if (comboBox4.Text == "空格校验") { serialPort1.Parity = Parity.Space; }if (comboBox5.Text == "1"){serialPort1.StopBits = StopBits.One;}else if (comboBox5.Text == "1.5"){serialPort1.StopBits = StopBits.OnePointFive;}else if (comboBox5.Text == "2"){serialPort1.StopBits = StopBits.Two;}//serialPort1.ReadTimeout(2000);serialPort1.Open();button2.Enabled = false;//打开串口按钮不可用//button3.Enabled = true;//关闭串口}catch{MessageBox.Show("端口错误,请检查串口", "错误");}}}
}

2.1.6 效果如下

总结

SerialPort是一个串口传输的一个非常方便的控件,对从事上位机测试的人是一个很好的控件,很多做嵌入式开发的人,他们的大部分界面都是用C#写的,难免会用到这个控件,如果你需要了解SerialPort发送和接收,请关注博主下一篇文章。创作不易,点赞,关注,有什么问题请评论指教,谢谢。

C# SerialPort配置和属性了解相关推荐

  1. Confluence 6 配置系统属性

    2019独角兽企业重金招聘Python工程师标准>>> 在这个页面中描述 Confluence 启动时如何设置 Java 属性和其他选项. 请查看 How to fix out of ...

  2. 使用 Fluent API 配置/映射属性和类型

    配置EF使之在映射数据时绕开约定:注释和Fluent API.注释仅涵盖一部分Fluent API功能. 通过重写DbContext上的OnModelCreating方法来访问Code First F ...

  3. DefaultListableBeanFactory 对配置lazy-init 属性单态Bean 的预实例化

    //对配置lazy-init属性单态Bean的预实例化 @Override public void preInstantiateSingletons() throws BeansException { ...

  4. Spring 3.1 –从数据库加载XML配置的属性

    Spring使通过其PropertyPlaceholderConfigurer和(Spring 3.1之前)PropertySourcesPlaceholderConfigurer(Spring 3. ...

  5. springmvc 项目完整示例05 日志 --log4j整合 配置 log4j属性设置 log4j 配置文件 log4j应用...

    log4j 就是log for java嘛,老外都喜欢这样子,比如那个I18n  ---internationalization  不就是i和n之间有18个字母... http://logging.a ...

  6. Spring框架中XML配置特殊属性注入

    Spring框架中XML配置特殊属性注入 前言 创建测试类 其他类型属性 前言 Spring框架中,在通过set方式进行属性注入时,可能会遇到某些特殊字符的注入,例如:null和某些标签字符" ...

  7. Spring如何配置bean属性

    在Spring的bean配置文件中,每个bean必须有一个唯一标识的名称或者id,以及一个完全限定的类名,用来让Ioc容器对其进行实例化. 例如有一个简单的Bean: package com.gisx ...

  8. QBC 通过Heibernate查询 discriminator 配置的属性问题

    在通过QBC查询discriminator配置的属性otype时,Heibernate 无法解析otype属性. Heibernate 实体类映射.xml源码 <hibernate-mappin ...

  9. vscode 添加新建文件夹快捷键 (配置 when 属性)

    实现目标 在获取左侧项目栏文件夹焦点情况下 添加新建文件夹的快捷键 Shift + A 我本来是个atom忠实粉丝, 但是atom使用window10自带输入法在书写汉字时总是会出现首字母缺失的情况, ...

最新文章

  1. linux查看服务器外网ip方法
  2. 嵌入式闪存您了解多少?听听专家怎么说!
  3. ios开发Base64编码以及加密相关学习
  4. 神经网络的结构汇总——tflearn
  5. 2019手卫生定义_2021年卫生资格考试部分科目大纲和教材变化归总!
  6. docker导入镜像 liunx_docker扫盲?面试连这都不会就等着挂吧
  7. Spark的StaticMemoryManager
  8. MSYS2 的安装与使用
  9. NVivo的节点矩阵
  10. 全志A31S(android 4.2/4.4)截屏
  11. PHP下制作图灵机器人程序
  12. 如何处理Git中没有小绿勾的问题
  13. Spring Web : FormHttpMessageConverter
  14. Go中rune类型浅析
  15. MYSQL查询选修三门以上课程_SQL高级查询的练习题
  16. 系统云端服务器,系统云端服务器
  17. 如何找到专业学术期刊的“大牛”
  18. 计算机到底是谁发明的?
  19. UC-Android逆向工程师 面试题1的分析
  20. 教你如何做微信公众号引流!

热门文章

  1. python制作连点器_python群聊工具实现(上)
  2. 一乐 :煎饼果子与架构模式
  3. 源代码加密软件的那些事儿
  4. 如何用便签发布小寒的朋友圈说说
  5. 无人机1:2000正射影像+部分主要区三维倾斜模型
  6. 【Python】元组与集合
  7. 10个优秀设计网站盘点
  8. 如何删除英文字符串中的标点符号
  9. c语言ios包的国密算法包,一种IC卡电子现金自助充值方法及其系统与流程
  10. MySQL存储引擎以及索引