C#中的通信

news2025/1/14 18:28:47

上位机应用开发-串口通信1、基于C#的串口通信对象:SerialPort

2、字段属性

  • PortName:获取或设置通信端口

  • BaudRate:获取或设置串行波特率-DataBits:获取或设置每个字节的标准数据位长度

  • Parity:获取或设置奇偶校验检查协仪I-StopBits;获取或设置每个字节的标准停止位数

3、常用方法-GetPortNames:获取当前计算机的串行端口名称数组【静态】-Open:打开一个新的串行端口连接-Read:从SerialPort输入缓冲区中读取-Write:将数据写入串行端口输出缓冲区-Close:关闭端口连接,将IsOpen怭 设置为False,并释放内部Stream对象

BytesToRead:得到接收到数据的字节数BytesToWrites:得到送往串口的字节数IsOpen:获取一个值,判断串口是否打开ReadBufferSize:获取或设置读取数据的缓存大小ReadTimeout:读取超时时间WriteBufferSize:与ReadBufferSize相对WriteTimeout:与ReadTimeout相对

ReadByte:读取一个字节的数据ReadChar:读取一个字符的数据

4、常用事件:-DataReceived:表示将处理SerialPort对象的数据接收事件的方法。接收到数据时的委托回调

连接串口

using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
​
namespace _8._1day01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            SerialPort serialPort = new SerialPort();
            string[] serialport = SerialPort.GetPortNames();
            serialPort.PortName = "COM1";
            serialPort.BaudRate = 9600;
            serialPort.DataBits = 8;
            serialPort.Parity = Parity.None;
            serialPort.StopBits = StopBits.One;
            serialPort.Open();
        }
    }
}

如果出现以下异常说明串口的端口被占用

串口通信

using System;
using System.Collections.Generic;
using System.IO.Ports;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
​
namespace _8._1day01
{
    internal class Program
    {
        static void Main(string[] args)
        {
            SerialPort serialPort = new SerialPort("COM1", 9600, Parity.None, 8, StopBits.One);
            serialPort.Open();
            serialPort.Write("Hello");
​
            
            serialPort.Close();
        }
    }
}

发送频率太快,报文会连在一起

发送报文太长 效率不高 准确性不高

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

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

相关文章

你需要的Node版本管理神器NVM

在做项目的时候,很多人本地的node都是装一个固定版本,一旦有些项目要下的依赖需要更高版本的node支持的时候,此时需要升级node就得把已经安装的低版本node卸载了,然后再重新下载、安装高版本的node,既费时间又抓狂,特别…

大模型算法面试题(十九)

本系列收纳各种大模型面试题及答案。 1、SFT(有监督微调)、RM(奖励模型)、PPO(强化学习)的数据集格式? SFT(有监督微调)、RM(奖励模型)、PPO&…

网工内推 | 云运维工程师,最高19K,五险一金加补充医疗险

01 云计算运维工程师 🔷岗位职责 1、负责客户云计算解决方案的运维,负责云计算解决方案中云、虚拟化工作; 2、负责客户现场H3C产品的日常问题处理、变更维护、巡检、版本升级等工作,保障客户网络的稳定运行; 3、协调…

yolo数据集格式按照每一个类别的比例划分数据集

写在前面: 写脚本不易,写博客不易,请多点赞关注,谢谢。10多年来,我一直免费给大家毫无保留的分享技术等,不但从来没被打赏过,而且在分享有些模型转化处理的高级脚本中,有些同胞由于自…

pmp证书实用性怎么样,考这个性价比高不高,难度?

要是 PMP 证书没有价值,还会有那么多人愿意去考吗? 我觉得一个原因是因为行业/岗位需求高,还有就是拿证后能不能用得上,看人看公司,很大一部分考证的人都是因为应聘跟投标书要求。 据我了解,PMP 证书目前…

八戒会修特斯拉 特斯拉如何磨合制动器

--------------------------------------------------------------------------------------------------------------------------------- -------------------------------------- 作者: 八戒会修特斯拉 -------------------------…

动态注意力机制新突破!11个最新idea,看了就能发顶会!

在处理复杂数据时,可以通过引入动态注意力机制,让模型根据输入数据的特点动态调整关注点,聚焦最关键的信息,来提高模型的处理能力和效率。 这种比传统方法更高效、灵活的技术足以应对各种复杂任务和挑战,具有强大的适…

C语言程序设计22

《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 例题2.10 先后输出B、O、Y三个字符 代码&#xff1a; //《C程序设计教程&#xff08;第四版&#xff09;——谭浩强》 //例题2.10 先后输出B、O、Y三个字符#include <stdio.h> int main() {char a B;char …

E22.【C语言】练习:“详解函数递归”文中青蛙跳台阶的答案

点击查看原文 代码实现 jump(n)jump(n-1)jump(n-2) #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int jump(int n) {if (1 n){return 1;}else if (2 n){return 2;}else{return jump(n - 1) jump(n - 2);} }int main() {int n 0;printf("请输入台阶总数…

MIGO 常用移动类型

MIGO的移动类型&#xff1a; 101&#xff1a;可以指采购订单收货和生产订单收货&#xff0c;在MB51中可以通过移动标识来进行区分。B指采购订单。F指生产订单。 122&#xff1a;采购订单退货。通过A02 物料凭证进行退货后&#xff0c;系统自动带出122的移动类型。 161&#xf…

华清IOday5 24-8-1

1、使用两个线程完成两个文件的拷贝&#xff0c;分支线程1拷贝前一半&#xff0c;分支线程2拷贝后一半&#xff0c;主线程回收两个分支线程的资源 #include <myhead.h> //文件信息结构体创建 struct File {const char *file1;//文件1地址const char *file2;//文件2地址i…

中文网址导航模版HaoWa1.3.1/模版网站wordpress导航主题

HaoWa v1.3.1由挖主题开发的一款网址导航类主题。 HaoWA主题除主体导航列表外&#xff0c;对主题所需的小模块都进行了开放式的HTML编辑器形式的功能配置&#xff0c;同时预留出默认的代码结构&#xff0c;方便大家在现有的代码结构上进行功能调整。 同时加入了字体图标Font …

一文解决3D车道线检测:最新单目3D车道线检测综述

前言 场景理解是自动驾驶中极具挑战的任务&#xff0c;尤其是车道检测。车道是道路分割的关键&#xff0c;对车辆安全高效行驶至关重要。车道检测技术能自动识别道路标记&#xff0c;对自动驾驶车辆至关重要&#xff0c;缺乏这项技术可能导致交通问题和事故。车道检测面临多种…

JS 逆向补环境

报错信息ReferenceError: window is not defined 看到此报错应该在env文件中写入一下代码 windowglobal报错信息Cannot read properties of undefined (reading ‘userAgent’) 看到此报错应该在env文件中写入一下代码 navigator{"userAgent":Mozilla/5.0 (Windo…

[GYCTF2020]Blacklist1

打开题目 判断注入类型&#xff0c;输入1试试 输入2 输入1 判断为字符型注入 堆叠查询2;show databases;# 然后来输入2; show tables;#来查看数据库的表 然后我们通过FlagHere表来查看列输入2;show columns from FlagHere;# 来查看列 、 重新构造payload&#xff1a;0;HAND…

手机在网状态接口如何对接?(二)

一、什么是手机在网状态&#xff1f; 传入手机号码&#xff0c;查询该手机号的在网状态&#xff0c;返回内容有正常使用、停机、在网但不可用、不在网&#xff08;销号/未启用/异常&#xff09;、预销户等多种状态。 二、手机在网状态使用场景&#xff1f; 1.用户验证与联系…

C语言数据在内存中的存储超详解

文章目录 1. 整数在内存中的存储2. 大小端字节序和字节序判断2. 1 什么是大小端&#xff1f;2. 2 为什么会有大小端&#xff1f;2. 3 练习 3. 浮点数在内存中的存储3. 1 一个代码3. 2 浮点数的存储3. 2. 1 浮点数存的过程3. 2. 2 浮点数取的过程3. 3 题目解析 1. 整数在内存中的…

vue大数据量列表渲染性能优化:虚拟滚动原理

前面咱完成了自定义JuanTree组件各种功能的实现。在数据量很大的情况下&#xff0c;我们讲了两种实现方式来提高渲染性能&#xff1a;前端分页和节点数据懒加载。 前端分页小节&#xff1a;Vue3扁平化Tree组件的前端分页实现 节点数据懒加载小节&#xff1a;Element Tree Plu…

镜像制作和管理

文章目录 一、Docker镜像说明Docker镜像中没有内核为什么没有内核容器中的程序后台运行会导致此容器启动后立即退出镜像的生命周期和制作方式 二、手动构建镜像基于容器手动制作镜像步骤实际操作基于 busybox 制作httpd镜像制作tomcat镜像基于ubuntu的基础镜像手动安装nginx镜像…

空间域注意力机制(Spatial Attention)

空间域注意力机制&#xff08;Spatial Attention&#xff09;是深度学习中一种重要的注意力机制&#xff0c;用于在处理如图像或视频数据时聚焦于特定区域&#xff0c;以提高模型的性能和效率。举例来说&#xff0c;首先&#xff0c;卷积神经网络处理一张图像&#xff0c;经过特…