给串口发送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;
        }
    }
}


 
目录
相关文章
串口网口16进制发送的和ASCII发送以及16进制接收和ASCII接收区别
我们在工控软件中,会经常使用到网口和串口,去接受和发送数据。通常我们发送数据的模式有两种,一种16进制,一种是ASCII码。16进制的的经常会用来和仪器PLC等设备通讯。ACSII码是一种文本模式。
1323 0
串口网口16进制发送的和ASCII发送以及16进制接收和ASCII接收区别
|
7月前
|
传感器 数据采集 网络协议
Java串口通信:从十六进制字符串到字节数组的正确转换与发送
Java串口通信:从十六进制字符串到字节数组的正确转换与发送
338 4
|
7月前
进制转换(m 进制 x 转换为 n 进制的数)
进制转换(m 进制 x 转换为 n 进制的数)
|
7月前
|
存储 C语言 索引
字符串和字符串结束标志
在编程中,字符串是一种常用的数据类型,用于表示文本信息。字符串由一系列字符组成,这些字符可以是字母、数字、标点符号等。每个字符串都有一个结束标志,用于标识字符串的末尾。了解字符串和字符串结束标志的概念对于正确处理和操作字符串至关重要。
194 0
|
7月前
|
C#
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
十六进制(简写为hex或下标16)是一种基数为16的计数系统,是一种逢16进1的进位制。通常用数字0、1、2、3、4、5、6、7、8、9和字母A、B、C、D、E、F(a、b、c、d、e、f)表示,其中:A~F表示10~15,这些称作十六进制数字。 我们在做开发的过程中,经常需要将收发数据打印出来检查。如何简单高效的一行代码转换字节数组到字符串呢?我们来一起看看吧!
152 0
C# | [字节数组]与[16进制字符串]互相转换 - CodePlus系列
|
7月前
|
开发框架 .NET C#
C# | [二进制字符串] 与 [字节数组] 互相转换,一行代码就搞定! - CodePlus系列
开发中有时需要将二进制数据转换为字符串或相反。虽然.NET提供了一些用于二进制数据操作的类库,但是它们的使用有时候会比较繁琐。STTech.CodePlus是一个.NET扩展库,它提供了很多实用的扩展方法,可以帮助我们更方便地进行二进制数据操作。 在本文中,我们将介绍如何使用STTech.CodePlus扩展库实现二进制字符串和字节数组的快速互相转换。
297 0
|
自然语言处理
转换流,字节字符的转换
转换流,字节字符的转换
常用字节转换(字符串转16进制,16进制转字符串)
常用字节转换(字符串转16进制,16进制转字符串)
|
Go 开发者
二进制转成其他进制|学习笔记
快速学习二进制转成其他进制
二进制转成其他进制|学习笔记