首页 > 其他分享 >串口代码片段

串口代码片段

时间:2024-08-22 10:49:30浏览次数:7  
标签:片段 Console 代码 receivedData serialPort length 串口 var new

// See https://aka.ms/new-console-template for more information

using System.IO.Ports;
using System.Runtime.InteropServices;

Console.WriteLine("Hello, World!");

try
{
    var ports = SerialPort.GetPortNames();
    foreach (var port in ports)
    {
        Console.WriteLine(port);
    }

    TestCommand0();
}
catch (Exception e)
{
    Console.WriteLine(e);
}

string GetPortName()
{
    /*
    if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
    {
        return "COM3";
    }
    */
    return "/dev/ttyUSB0";
}



void TestCommand0()
{
    var requestFrame = new List<byte>
    {
        0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x02, 0x80, 0x00, 0x00, 0x82
    };

    var parity = Parity.Odd;
    var stopBits = StopBits.One;
    var dataBits = 8;
    // var baudRate = 9600;
    var baudRate = 1200;

    var portName = GetPortName();
    Console.WriteLine(portName);

    var serialPort = new SerialPort(portName, baudRate, parity, dataBits, stopBits);

    serialPort.ReadTimeout = 3500;
    //serialPort.Handshake = Handshake.RequestToSend;

    //serialPort.DtrEnable = true;
    serialPort.RtsEnable = true;

    // serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);


    serialPort.Open();

    serialPort.Write(requestFrame.ToArray(), 0, requestFrame.Count);

    Thread.Sleep(1000);
    //serialPort.RtsEnable = false;

    var response = new byte[512];
    var length = serialPort.Read(response, 0, 512);

    var receivedData = new byte[length];
    Array.Copy(response, 0, receivedData, 0, length);

    Console.WriteLine(BitConverter.ToString(receivedData));
}

static void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
    if (sender is SerialPort serialPort)
    {
        var response = new byte[512];
        var length = serialPort.Read(response, 0, 512);

        var receivedData = new byte[length];
        Array.Copy(response, 0, receivedData, 0, length);

        Console.WriteLine(BitConverter.ToString(receivedData));

    }
}

  

标签:片段,Console,代码,receivedData,serialPort,length,串口,var,new
From: https://www.cnblogs.com/lu1770/p/18373354

相关文章

  • 提升代码迭代速度的Python重载方法使用详解
        概要在Python编程中,模块是组织代码的重要工具,它们使得代码更加模块化和易于维护。在开发和调试过程中,有时需要对已经导入的模块进行修改并重新加载以应用更改。Python提供了一个名为reload的模块,用于在不重新启动解释器的情况下重新加载已经导入的模块。本文将详......
  • Python代码部署之用Kubernetes实现自动化详解
    概要在现代软件开发中,容器化和微服务架构逐渐成为主流,而Kubernetes则是管理容器化应用的事实标准。Kubernetes(简称K8s)提供了自动化部署、扩展和管理容器化应用的强大功能。本文将详细介绍如何使用Kubernetes来部署Python代码,包括Kubernetes的基本概念、部署流程,以及通过示例......
  • [VS Code扩展]写一个代码片段管理插件(二):功能实现
    @目录创建和插入代码片段代码片段列表代码片段预览代码片段编辑自定义映射默认映射自动完成项目地址创建和插入代码片段VSCode扩展提供了数据存储,其中globalState是使用全局存储的Key-Value方式来保存用户状态,支持在不同计算机上保留某些用户状态,详情请参考官方文档若在编辑器......
  • Gitlab拉取代码报503错误解决方法
    参考https://blog.csdn.net/fangxiananvhai/article/details/102659875故障现象克隆代码时报503错误'gitclone'hasbeenupdatedinupstreamGittohavecomparablespeedsto'gitlfsclone'.Cloninginto'psy_model_v3'...fatal:unabletoa......
  • try...except 语句通常用于捕获和处理可能在代码执行过程中发生的异常
    在Django中,try...except语句通常用于捕获和处理可能在代码执行过程中发生的异常。这有助于防止程序因未处理的错误而崩溃,并允许开发者优雅地处理错误场景。以下是一些常见的用法示例:1.数据库操作中的异常处理在进行数据库操作时,可能会遇到如数据不存在、唯一性约束违反等问题......
  • 数据结构day03(栈 Stack 顺序栈、链式栈 )内含具体详细代码实现
    目录【1】栈 Stack1》栈的定义 2》顺序栈 2》链式栈 4》顺序栈的链式栈的区别【1】栈 Stack1》栈的定义栈:是只允许在一端进行插入或删除的线性表,首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。栈顶:线性表允许进行插入删除的一端......
  • 字符串信息检测原理代码剖析
    想要用单片机识别一长串字符并执行对应指令,有两种办法:数组法和循环法错误的实例:if(RXDATE=='L') { if(RXDATE=='E') { if(RXDATE=='D') { if(RXDATE=='1') { LED1=0; } if(RXDATE......
  • 代码随想录Day22
    77.组合给定两个整数n和k,返回范围[1,n]中所有可能的k个数的组合。你可以按任何顺序返回答案。示例1:输入:n=4,k=2输出:[[2,4],[3,4],[2,3],[1,2],[1,3],[1,4],]示例2:输入:n=1,k=1输出:[[1]]提示:1<=n<=201<=k<=n正解......
  • 软件测试-web端测试-代码起步
    记录学习笔记第一步、导包web自动化测试常用selenium,这是必要的。fromseleniumimportwebdriver 第二步、确定要使用的浏览器浏览器有很多,常用Chrome,这里看你下载的webdriver是谁的,我用的是edge。用谷歌,那就把Edge改为Chrome,用火狐就改为Firefoxdriver=webdriver.Ed......
  • 《代码整洁之道:程序员的职业素养》读后感
    概述工作即将满8年,如果算上2年实习的话,满打满算我已经走过将近10年的程序员编码生涯。关于SpringBoot知识点,关于微服务理论,也已经看过好几本书籍,看过十几篇技术Blog,甚至自己也写过相关技术Blog。无论是SpringBoot,还是微服务,这些我们都可以称之为编程职业硬技能。这些硬技能一......