给串口发送16进制字符串命令和包括16进制命令转换为字节数组

简介: <p>using System;<br>using System.Collections.Generic;<br>using System.Text;<br>using System.IO.Ports;<br>namespace SerialPortControl<br>{<br>    public class PortControl<br>    {</p> <p>        ///

using System;
using System.Collections.Generic;
using System.Text;
using System.IO.Ports;
namespace SerialPortControl
{
    public class PortControl
    {

        /// <summary>
        /// 向端口中发送命令。
        /// </summary>
        /// <param name="hexstring">"0A 46 0B 31 30 30 32 35"</param>
        /// <remarks>我本人对串口目前不是很熟悉,这次项目中需要,所以正在学习,后面我可能还会写一些。</remarks>
        /// <example>  SerialPortControl.PortControl.WriteCommand("0A 46 0B 31 30 30 32 35")</example>
        public static  void WriteCommand(string hexstring)
        {
            SerialPort sp = new SerialPort("COM1");
            byte[] buff=HexStringToBinary(hexstring.Trim()                );
            sp.WriteBufferSize = buff.Length ;
            sp.Open();
            sp.Write(buff ,0,buff.Length);
            sp.Close();
            sp.Dispose();
        }
        /// <summary>
        /// 16进制字符串转换为二进制数组
        /// </summary>
        /// <param name="hexstring">字符串每个字节之间都应该有空格,大多数的串口通讯资料上面的16进制都是字节之间都是用空格来分割的。</param>
        /// <returns>返回一个二进制字符串</returns>
        public static byte[] HexStringToBinary(string hexstring)
        {
            string[] tmpary = hexstring.Split(' ');
            byte[] buff = new byte[tmpary.Length];
            for (int i = 0; i < buff.Length ; i++)
   {
                buff[i] = Convert.ToByte(tmpary[i], 16);
   }
            return buff;
        }
    }
}


 
目录
相关文章
|
设计模式 编译器 API
【C/C++ Pimpl模式】隐藏实现细节的高效方式 (Pimpl Idiom: An Efficient Way to Hide Implementation Details)
【C/C++ Pimpl模式】隐藏实现细节的高效方式 (Pimpl Idiom: An Efficient Way to Hide Implementation Details)
1860 1
|
人工智能 IDE 开发工具
JetBrains DataSpell 2025.1 发布 - 专业数据科学家的 IDE
JetBrains DataSpell 2025.1 (macOS, Linux, Windows) - 专业数据科学家的 IDE
464 3
MATLAB在风险管理中的应用:从VaR计算到压力测试
本文介绍如何使用MATLAB进行风险管理,涵盖风险度量(如VaR)、压力测试和风险分解。通过历史模拟法、参数法和蒙特卡洛模拟法计算VaR,评估投资组合在极端市场条件下的表现,并通过边际VaR和成分VaR识别风险来源。结合具体案例和代码实现,帮助读者掌握MATLAB在风险管理中的应用,确保投资组合的稳健性。
|
数据可视化 数据挖掘
SmartPLS 4.0
SmartPLS 4.0
2359 3
|
数据安全/隐私保护 开发者 Docker
国内docker公开镜像站的关闭!别急,docker_image_pusher 使用Github Action将国外的Docker镜像转存到阿里云私有仓库
通过使用 docker_image_pusher 这样的开源项目,我们能够轻松地解决国内访问 Docker 镜像拉取速度慢及拉去失败的问题,同时保证了镜像的稳定性和安全性。利用 Github Action 的自动化功能,使得这一过程更加简单和高效。
3542 2
|
设计模式 算法 编译器
【C/C++ PIMPL模式 】 深入探索C++中的PIMPL模式
【C/C++ PIMPL模式 】 深入探索C++中的PIMPL模式
1292 0
|
存储 并行计算 算法
[Eigen中文文档] 概述(总目录)
Eigen是基于线性代数的C ++模板库,主要用于矩阵,向量,数值求解器和相关算法。常用的Ceres、G2O等项目均是基于Eigen库。 本系列文章将通过官方文档带你了解Eigen。
3447 1
|
存储 自然语言处理 C语言
你学废了Python的max函数与min函数的妙用吗?
你学废了Python的max函数与min函数的妙用吗?
639 0
你学废了Python的max函数与min函数的妙用吗?