串口发送数据类

该博客主要介绍了如何通过C#实现串口通信,包括设置串口参数、发送和接收数据。具体涉及到将字符串转换为16进制字节,然后以特定格式组合并发送,同时提供了发送不同数据类型(如字符串、指定格式的数据包)的方法。
摘要由CSDN通过智能技术生成
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO.Ports;
using  System.ComponentModel;
namespace  StringToLed
{
    
class stringtoLed
    
{
        
private System.IO.Ports.SerialPort serialPort1 = new SerialPort();

        
public  void write(string senStr)
        
{
            
string headStr = "23 14 24 15 13 18 58 58 58 58 58 58 44 01 01 00 01 01 02 04";
            
string footStr = "0A 2C 0E 16 04 02 08 6F";
            
string midStr = "";
            
string myStr = string.Empty;
            
// " 23 14 24 15 13 18 58 58 58 58 58 58 44 01 01 00 01 01 02 04C4 E3 BA C3 B0 A1 A3 A10A 2C 0E 16 04 02 08 6F";
            midStr = BitConverter.ToString(ASCIIEncoding.Default.GetBytes(senStr.Trim())).Replace("-"" ");
            
//midStr = "C4 E3 BA C3 B0 A1 A3 A1";
            myStr = headStr.Trim() + " "+midStr.Trim()+" "+ footStr.Trim();

            serialPort1.PortName 
= "COM1";  //端口号
            serialPort1.BaudRate = 9600;   //比特率
            serialPort1.Parity = Parity.None;//奇偶校验
            serialPort1.StopBits = StopBits.One;//停止位
            serialPort1.ReadTimeout = 1000//读超时,即在1000内未读到数据就引起超时异常
            serialPort1.Open();

            
byte[] myByte = StringToByte(myStr.Trim());

            serialPort1.Write(myByte, 
0, myByte.Length);
            serialPort1.Close();
          
//  MessageBox.Show("数据发送成功!", "系统提示");
        }

        
/// <summary>
        
/// 默认发送:左推,速度1,停留0
        
/// </summary>
        
/// <param name="sendStr">发送得数据</param>

        public void writeCom(string sendStr)
        
{

            
string headStr = "23 14 24 15 13 18 58 58 58 58 58 58 44 01 01 0F 01 01 02";
            
            
string footStr = "0A 2C 0E 16 04 02 08";
            
string midStr = string.Empty;
            
string myStr = string.Empty;
            
string last = string.Empty;
            
string  sentLenth = sendStr.Length.ToString("X");
            
if (sentLenth.Length<2)
            
{
                sentLenth 
="0"+sentLenth;
            }

            headStr 
+=" "+sentLenth;//第一部分

            midStr 
= BitConverter.ToString(ASCIIEncoding.Default.GetBytes(sendStr.Trim())).Replace("-"" ");
            
string HexStr = "44 01 01 0F 01 01 02"+" "+sentLenth+ " " + midStr + " " + footStr;
            last 
= getLast(HexStr);
            
//最终发送字节
            myStr = headStr.Trim() + " " + midStr.Trim() + " " + footStr.Trim()+" "+last;

            serialPort1.PortName 
= "COM1";  //端口号
            serialPort1.BaudRate = 9600;   //比特率
            serialPort1.Parity = Parity.None;//奇偶校验
            serialPort1.StopBits = StopBits.One;//停止位
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值