C# 完成串口通信RS485

C# 完成串口通信RS485|RS232上下位机交互

第零步:
我用的是电脑usb 转串口的所以首先是驱动程序下载,我们用的是CH341
在这里插入图片描述
下载地址:https://www.wch.cn/downloads/CH341SER_EXE.html

第一步:连接机器
RS485 上面有三个端子,A正B负GND地线,我们需要把他们都对应连接(GND看你连不连都可以)
在这里插入图片描述
第二步:
连接好了之后就是C# 控制程序啦,这里没什么特别的,主要是用到一个类 SerialPort

SerialPort类
在C#中,串口通信主要是使用SerialPort类来实现的。SerialPort类提供了串口通信中所有必需的属性和方法。使用SerialPort类,我们可以轻松地连接电脑和外设,进行数据传输。

SerialPort类的属性
SerialPort类中有几个重要的属性值,通过设置这些属性值,我们可以对串口进行配置,从而实现串口通信。以下是SerialPort类中几个重要的属性:

  • PortName:串口端口名称,如COM1、COM2等;
  • BaudRate:波特率,指每秒钟传输的数据位数;
  • Parity:奇偶校验位,用于检验数据传输是否有误;
  • DataBits:数据位,用于设置每次传输多少位数据;
  • StopBits:停止位,用于指定数据传输过程中的间隔时间。

SerialPort类的常用方法
SerialPort类的方法包括打开串口、关闭串口、发送数据等操作。以下是SerialPort类的几个重要的方法:

  • Open():打开串口;
  • Close():关闭串口;
  • Write():发送数据;
  • Read():接收数据。

随便写了一个贴这里了
在这里插入图片描述
一、 首先先赋值,参考

   static SerialPort serialPort = new SerialPort();private void Send_Load(object sender, EventArgs e){// 查询更新已有端口IList<string> list = new List<string>();// 读取当前有哪些COM口foreach (string s in SerialPort.GetPortNames()){list.Add(s);}port_m.DataSource = list;// 传输速度int[] speed_data = new int[] { 128000, 9600, 19200, 38400, 115200 };speed.DataSource = speed_data;// 传输速度int[] times_data = new int[] { 10, 1, 2, 5, 10, 20 };times.DataSource = times_data;// 奇偶校验IList<string> list1 = new List<string>();list1.Add("0不发生奇偶校验检查");list1.Add("1设置奇偶校验位奇数");list1.Add("2设置奇偶校验位偶数");list1.Add("3将奇偶校验位保留为1");list1.Add("4将奇偶校验位保留为0");odd_even.DataSource = list1;// 停止位string[] stop = { "0", "1", "2" };stop_num.DataSource = stop;serialPort.DataBits = 8;}

二、打开串口,发送数据,接收数据,关闭串口

        private void simOpen_Click(object sender, EventArgs e){serialPort.PortName = port_m.Text;serialPort.BaudRate = Int32.Parse(speed.Text);switch (odd_even.Text) {case "0不发生奇偶校验检查":serialPort.Parity = Parity.None;break;case "1设置奇偶校验位奇数":serialPort.Parity = Parity.Odd;break;case "2设置奇偶校验位偶数":serialPort.Parity = Parity.Even;break;case "3将奇偶校验位保留为1":serialPort.Parity = Parity.Mark;break;case "4将奇偶校验位保留为0":serialPort.Parity = Parity.Space;break;default:serialPort.Parity = Parity.None;break;}serialPort.DataBits = 8;switch (stop_num.Text){case "1":serialPort.StopBits = StopBits.One;break;case "2":serialPort.StopBits = StopBits.Two;break;default:serialPort.StopBits = StopBits.One;break;}try{serialPort.Open();}catch (Exception ){txtLog.Text += "\n 串口打开失败,请检查是不是这个COM,或者检查参数是否有误";}serialPort.Write(txtSend.Text);//这个是文本发送数据给对应的串口Byte[] TxData = { 0x04, 0x03, 0x00, 0x03, 0x00, 0x01, 0x74, 0x5f }; //定义通讯指令 ,0x04设备地址为4,0x03功能码为3, 0x00, 0x03是通讯地址吗,0x00, 0x01是寄存器数量,0x74, 0x5f是CRC校验serialPort.Write(TxData , 0, 8);//或者这样发送byte[] recData = new byte[7];serialPort.Read(recData, 0, 7);//接收数据serialPort.Close();//关闭串口}

好了,有兴趣的朋友可以去了解一下SerialPort

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/27925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习与计算机相结合:直播实时美颜SDK的创新之路

时下&#xff0c;实时美颜技术就成为了直播主们的得力工具&#xff0c;它可以在直播过程中即时处理视频画面。而支持实时美颜功能的SDK更是推动了这项技术的发展&#xff0c;让直播主和普通用户都能轻松使用美颜功能。 一、美颜技术的演进 早期的美颜技术主要依赖于简单的图…

eclipse Java Editor Templates

​ Window - Preferences - Java - Editor - Templates ​ date ${currentDate:date(yyyy.MM.dd)}

Java版工程行业管理系统源码-专业的工程管理软件-em提供一站式服务

​ Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目…

塔矢行洋对战藤原佐为,谁才是最接近神之一手的人

大家好, 我是嘉宾, 今天我们来盘点一下古今第一高手对局 &#xff0c;塔矢行洋对战藤原佐为&#xff0c;谁才是最接近神之一手的人&#xff0c; 在所有设定都点击好之后, 塔矢行洋下出了自己的第一步 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 佐…

【HDFS】BlockManager#checkRedundancy方法详解

BlockManager#checkRedundancy这个方法只有一处调用点, 就是FSNamesystem#finalizeINodeFileUnderConstruction方法。 TODO:补充FSNamesystem#finalizeINodeFileUnderConstruction方法的调用点。 checkRedundancy方法的参数的BlockCollection对象bc,解释一下,INodeFile类是…

SA8450 camera 源码分析

目录 代码路径&#xff1a;/apps/qnx_ap/AMSS/multimedia/camera_safe/qcd Initialize the IFE and CSI Phy devices 初始化IFE 初始化 IFE CSID VFE 的结构体 获取IFE CSID base addr 的vaddr VFEDriver_Init RegisterISTCallback HwMgr_CSIPHYOpen 代码路径&#xff1…

【每日一题】—— B. Maximum Rounding(Codeforces Round 891 (Div. 3))

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

VIM 编辑器: Bram Moolenaar

VIM 用了很长时间&#xff0c; 个人的 VIM 配置文件差不多10年没有更新了。以前写程序的时候&#xff0c; 编辑都用这个。 linux kernel&#xff0c; boost规模的代码都不在话下。现在虽然代码写的少了&#xff0c;依然是我打开文件的首选。 现在用手机了&#xff0c;配个蓝牙键…

无涯教程-Perl - endnetent函数

描述 此功能告诉系统您不再希望使用getnetent从网络列表中读取条目。 语法 以下是此函数的简单语法- endnetent返回值 此函数不返回任何值。 例 以下是显示其基本用法的示例代码- #!/usr/bin/perluse Socket;while ( ($name, $aliases, $addrtype, $net) getnetent() )…

[RTKLIB]模糊度固定相关问题(一)

文章目录 一、改进的模糊度固定算法1. 简述模糊度固定算法思路2. 详解 manage_amb_LAMBDA()函数3. 我的思考和疑问 一、改进的模糊度固定算法 早些时候在阅读RTKLIB源码时&#xff0c;就对其模糊度固定算法感觉非常恐惧&#xff0c;首先是觉得整数最小二乘降相关是一个非常难的…

Android 9-- 源码角度: Home键的监听和拦截

在做应用层APP需求的过程中&#xff0c;HOME键的监听&#xff0c;Back键的监听&#xff0c;这都是很常见的问题&#xff0c;那你有试过&#xff0c;去拦截HOME键的事件吗&#xff0c;有去了解过如何处理吗&#xff0c;流程如何 首先大家应该先了解一种情况&#xff0c;就是Andr…

16-4_Qt 5.9 C++开发指南_Qt 应用程序的发布

文章目录 1. 应用程序发布方式2. Windows 平台上的应用程序发布 1. 应用程序发布方式 用 Qt 开发一个应用程序后&#xff0c;将应用程序提供给用户在其他计算机上使用就是应用程序的发布。应用程序发布一般会提供一个安装程序&#xff0c;将应用程序的可执行文件及需要的运行库…

Python 网络请求之requests

1.导入 requests 库 安装 requests 库 pip3 install "requests2.29.0"这里安装2,29.0版本&#xff0c;我在安装最新版本时&#xff0c;请求接口会报错&#xff1a; urllib3 v2.0 only supports OpenSSL 1.1.1, currently the ssl module is compiled with LibreSS…

Vue中使用Sortable:A和B拖拽交换位置之后,B和A又神奇得换回去了,但下面的数据确实已交换

参考&#xff1a;Vue中使用Sortable 1 问题 Vue中使用Sortable拖拽表头达到改变列的位置的效果&#xff0c; 想法&#xff1a;使用该组件进行拖拽列&#xff0c;但它不会切换原表头下的数据&#xff0c;因此&#xff1a;1、先拖拽&#xff0c;2、手动交换原先vue中的表头&am…

嵌入式面试4 Linux编程

23.设fp已定义,执行语句fpfopen(“file”,“w”);后,以下针对文本文件file操作叙述的选项错误的是:&#xff08;ACD&#xff09;【多选】 A 可以随意读和写 B 只能写不能读 C 可以在原有内容后追加写 D 写操作结束后可以从头开始读 权重&#xff1a;高 备注&#xff1a;还要理解…

Linux tun虚拟网卡通信初识

什么是linux tun设备 Linux TUN 设备是一种虚拟网络设备&#xff0c;用于在用户空间和内核空间之间建立数据通道&#xff0c;使用户空间程序可以通过这个设备与内核网络栈进行交互。TUN 设备是一种通用的网络隧道设备&#xff0c;常用于实现虚拟专用网络&#xff08;VPN&#…

【湍流介质的三维传播模拟器】全衍射3-D传播模拟器,用于在具有随机和背景结构的介质中传播无线电和光传播(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

华为OD机试(含B卷)真题2023 算法分类版,58道20个算法分类,如果距离机考时间不多了,就看这个吧,稳稳的

目录 一、数据结构1、线性表2、优先队列3、滑动窗口4、二叉树5、并查集6、栈 二、算法1、基础算法2、字符串3、图4、动态规划5、数学 三、漫画算法2&#xff1a;小灰的算法进阶参与方式 很多小伙伴问我&#xff0c;华为OD机试算法题太多了&#xff0c;知识点繁杂&#xff0c;如…

中文版开源Llama 2同时有了语言、多模态大模型,完全可商用

可以说&#xff0c;AI 初创公司 LinkSoul.Al 的这些开源项目让海外开源大模型在国内的普及和推广速度与国际几乎保持了一致。 7 月 19 日&#xff0c;Meta 终于发布了免费可商用版本 Llama 2&#xff0c;让开源大模型领域的格局发生了巨大变化。 Llama 2 模型系列包含 70 亿、…

Python识别抖音Tiktok、巨量引擎滑块验证码识别

由于最近比较忙&#xff0c;所以本周搞了一个相对简单的验证码&#xff0c;就是抖音Tiktok的滑块验证码&#xff0c;这也是接到客户的一个需求。这种验证码通常在电脑端登录抖音、巨量引擎的的时候出现。 首先看一下最终的效果&#xff1a; 验证码识别过程 1、利用爬虫采集图…