串口编程主要用到SerialPort这个类,主要实现对串口发送字节数组然后点阵屏显示相关信息,其实这个功能很简单下面给大家把整体思路用流程图展现如下:、

其实整体思路就如流程图。下面是整个流程图的一个实现代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO.Ports;
using System.Threading; namespace portchart
{
class Serilaztion
{
SerialPort _serialPort;
public Serilaztion(string com)
{
_serialPort = new SerialPort();
_serialPort.PortName = com;
_serialPort.BaudRate = ;
_serialPort.Parity = Parity.None;
_serialPort.DataBits = ;
_serialPort.StopBits = StopBits.One;
_serialPort.ReadBufferSize = ;
_serialPort.Handshake = Handshake.None;
_serialPort.ReadTimeout = ;
_serialPort.WriteTimeout = ;
_serialPort.Open();
}
private static byte[] strToToHexByte(string hexString)
{
hexString = hexString.Replace(" ", "");
if ((hexString.Length % ) != )
hexString += " ";
byte[] returnBytes = new byte[hexString.Length / ];
for (int i = ; i < returnBytes.Length; i++)
returnBytes[i] = Convert.ToByte(hexString.Substring(i * , ), );
return returnBytes;
}
public static string StringToHexString(string s, Encoding encode)
{
byte[] b = encode.GetBytes(s);//按照指定编码将string编程字节数组
string result = string.Empty;
for (int i = ; i < b.Length; i++)//逐字节变为16进制字符,以%隔开
{
result += Convert.ToString(b[i], ); }
return result;
} public void SendMessage(string message, string com,string type)
{
System.Text.Encoding GB2312 = System.Text.Encoding.GetEncoding("GB2312");
message = message.Trim();
string kzm = "1B0104"; //开始码
string hh = StringToHexString(message, GB2312);
string js = "0D00"; //结束码
string zf = kzm + hh + js;
string s = "1B010320202020C7EB20C9CF20CFDF202020200D00"; byte[] by = strToToHexByte(zf);
byte[] bt = strToToHexByte(s); _serialPort.Write(by, , by.Length);
_serialPort.Write(bt, , bt.Length); }
public void Close()
{
_serialPort.Close();
}
public static string SetPortName(string defaultPortName)
{
string portName; Console.WriteLine("验证端口:");
foreach (string s in SerialPort.GetPortNames())
{
Console.WriteLine(" {0}", s);
} Console.Write("请输入Com端口(默认: {0}): ", defaultPortName);
portName = Console.ReadLine(); if (portName == "" || !(portName.ToLower()).StartsWith("com"))
{
portName = defaultPortName;
}
return portName;
} public static int SetPortBaudRate(int defaultPortBaudRate)
{
string baudRate; Console.Write("设置波特率(默认:{0}): ", defaultPortBaudRate);
baudRate = Console.ReadLine(); if (baudRate == "")
{
baudRate = defaultPortBaudRate.ToString();
} return int.Parse(baudRate);
} public static Parity SetPortParity(Parity defaultPortParity)
{
string parity; Console.WriteLine("验证奇偶校验位:");
foreach (string s in Enum.GetNames(typeof(Parity)))
{
Console.WriteLine(" {0}", s);
} Console.Write("进入校验位 (默认: {0}):", defaultPortParity.ToString(), true);
parity = Console.ReadLine(); if (parity == "")
{
parity = defaultPortParity.ToString();
} return (Parity)Enum.Parse(typeof(Parity), parity, true);
} public static int SetPortDataBits(int defaultPortDataBits)
{
string dataBits;
Console.Write("设置每个字节的标准数据位长度 (默认: {0}): ", defaultPortDataBits);
dataBits = Console.ReadLine();
if (dataBits == "")
{
dataBits = defaultPortDataBits.ToString();
}
return int.Parse(dataBits.ToUpperInvariant());
} public static StopBits SetPortStopBits(StopBits defaultPortStopBits)
{
string stopBits;
Console.WriteLine("设置每个字节的标准停止位数:");
foreach (string s in Enum.GetNames(typeof(StopBits)))
{
Console.WriteLine(" {0}", s);
} stopBits = Console.ReadLine();
if (stopBits == "")
{
stopBits = defaultPortStopBits.ToString();
}
return (StopBits)Enum.Parse(typeof(StopBits), stopBits, true);
}
public static Handshake SetPortHandshake(Handshake defaultPortHandshake)
{
string handshake; Console.WriteLine("设置串行端口数据传输的握手协议:");
foreach (string s in Enum.GetNames(typeof(Handshake)))
{
Console.WriteLine(" {0}", s);
}
Console.Write("端口数据传输的握手协议(默认: {0}):", defaultPortHandshake.ToString());
handshake = Console.ReadLine();
if (handshake == "")
{
handshake = defaultPortHandshake.ToString();
}
return (Handshake)Enum.Parse(typeof(Handshake), handshake, true);
}
} }

上面我把串口的参数固定了,可以根据自己的需求设置自己要传的参数。

c# 实现串口编程-操作LED屏幕的更多相关文章

  1. C#串口编程 操作硬件

    -------通过USB将硬件连接PC, 更新USB驱动,使用下面方法可控制相关设备. //1声明一个串口对象 public static SerialPort MainModule_Port_ = ...

  2. storysnail的Linux串口编程笔记

    storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...

  3. storysnail的Windows串口编程笔记

    storysnail的Windows串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据 ...

  4. Linux下串口编程【转】

    本文转载自:http://blog.csdn.net/w282529350/article/details/7378388 /************声明:本人只是见到这篇文章对我帮助很大才转载的,但 ...

  5. PB串口编程资料(转)

    ----MSCOMM32参数基本介绍2008年03月29日 星期六 上午 11:37MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能.MSComm控件在串口编程时非常方便,程序 ...

  6. Linux串口编程(转载)

    在嵌入式Linux中,串口是一个字设备,访问具体的串行端口的编程与读/写文件 的操作类似,只需打开相应的设备文件即可操作.串口编程特殊在于串 口通信时相关参数与属性的设置.嵌入式Linux的串口编程时 ...

  7. Linux串口编程详解(转)

    串口本身,标准和硬件 † 串口是计算机上的串行通讯的物理接口.计算机历史上,串口曾经被广泛用于连接计算机和终端设备和各种外部设备.虽然以太网接口和USB接口也是以一个串行流进行数据传送的,但是串口连接 ...

  8. linux串口编程总结

    串口本身.标准和硬件 † 串口是计算机上的串行通讯的物理接口.计算机历史上,串口以前被广泛用于连接计算机和终端设备和各种外部设备.尽管以太网接口和USB接口也是以一个串行流进行数据传送的.可是串口连接 ...

  9. Qt中的串口编程之三

    QtSerialPort 今天我们来介绍一下QtSerialPort模块的源代码,学习一下该可移植的串口编程库是怎么实现的. 首先,我们下载好了源代码之后,使用QtCreator打开整个工程,可以看到 ...

随机推荐

  1. 把exe嵌入到自己的exe中。delphi xe3

    下面是一个把exe程序嵌入到我们自己的exe中.开发环境 Delphi XE3 Version 17.0.4625.53395.OS环境WIN7 SP1,由于xe3版本的引用库发生变化.换成其他版本的 ...

  2. Mac 下用 go 开发Android应用环境设置

    需要的工具 设置代理 请参考:http://www.cnblogs.com/ghj1976/p/5087049.html Mac 下命令行设置代理: export http_proxy=http:// ...

  3. Mingyang.net:java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()

    使用hibernate-validator校验数据模型时报出如下异常: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInsta ...

  4. (easy)LeetCode 217.Contains Duplicate

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  5. Android--使用Notification在通知栏显示消息

    在一个Activity中点击按钮,产生一个通知栏消息通知. package cn.luxh.mynotice; import android.os.Bundle; import android.uti ...

  6. @Required @Autowired @Resource注解详解

    一.@Required注解用于检查特定的属性是否设置 1.RequiredAnnotationBeanPostProcessor 为该注解的处理器,即bean后置处理器,检查所有带有该解的bean属性 ...

  7. (转)C#操作PPT

    原文地址:http://blog.163.com/loveyingchun_1314/blog/static/2382425120124312627530/ 引用Microsoft.Office.Co ...

  8. 项目积累——CSS应用

    <tr onmouseover=" this.style.backgroundColor= '#E0FFFF' "  onmouseout="this.style. ...

  9. jdk线程的生产者消费者问题

    同步代码块实现生产者消费者模式 class Person { private String name; private String sex; private Boolean isEmpty = Bo ...

  10. 创建一个提供数据 API 的 Node.js 网站

    创建站点目录 首先,创建一个文件夹用来保存你的站点文件,使用 mkdir 就可以了 PS C:\> mkdir mysite 然后,进入到这个文件夹进行下一步的操作. 创建包说明 使用记事本或者 ...