c#实现串口操作 SerialPort】的更多相关文章

命名空间:using System.IO.Ports;该类提供了同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问. 操作类声明: SerialPort sp = null; /// <summary> /// 打开串口 /// </summary> /// <param name="protName">串口号</param> /// <param name="baudRate"…
原文地址:http://blog.csdn.net/wuyazhe/article/details/5627253 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面. 我们先说一下通讯协议.通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确.基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01…
C# 串口操作系列(5)--通讯库雏形 通讯库雏形的建立. 串口通讯介绍的高级篇,介绍更高级的抽象,为扩展为通用的客户端通讯库做铺垫,扩展性的考虑,能支持任意类型的流设备. ... 2010-08-09 00:07 阅读(22802) 评论(76)   C# 串口操作系列(4) -- 协议篇,文本协议数据解析 .net serialport 文本 数据 协议 分析.... 2010-06-09 01:50 阅读(21179) 评论(26)   C# 串口操作系列(3) -- 协议篇,二进制协议数…
C# 串口操作系列(5)--通讯库雏形 标签: 通讯c#数据分析byteclassstring 2010-08-09 00:07 21378人阅读 评论(73) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 串口是很简单的,编写基于串口的程序也很容易.新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了: 一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据  + 校验 一个A…
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子. 标签: c#objectnewlineexceptionbytestring 2010-05-17 01:10 117109人阅读 评论(302) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础. 我们的开发环境假定为vs2005(虽然我在用vs2010,但避…
做工业通 信有很长时间了,特别是串口(232/485),有VB/VC/C各种版本的串口操作代码,这些代码也经过了多年的现场考验,应该说是比较健壮的代码,但 是目前却没有C#相对成熟的串口操作代码,最近用Moxa的设备开发基于WinCE5.0的串口操作代码,所以就扩充完善了一下串口操作,特别是 SendCommand函数,这是我比较常用的主从通信代码,不喜欢用事件或线程接数据,在规定的超时时间内直接循环判断要接收的数据. 下面是具体的代码:   public class PortData     …
原帖地址:点击打开 最近在做android串口的开发,找到一个开源的串口类android-serialport-api.其主页在这里http://code.google.com/p/android-serialport-api/  ,这里可以下到APK及对源码. 但是下载源码之后发现源码不能直接使用,而且源码结构较为复杂.关于串口的操作不外乎几步: 1.打开串口(及配置串口): 2.读串口: 3.写串口: 4.关闭串口. android-serialport-api的代码使用了继承等复杂的行为,…
来源:https://blog.csdn.net/iracer/article/details/50334041 Arduino - 串口操作函数与示例代码大全 本文总结了Arduino常用串口操作函数,函数说明部分来源于Arduino 官网串口使用指南,示例与实验部分为自编.本文是对Arduino串口操作函数的较全面总结,可作为工具贴查找使用. 1.串口设置 Serial.begin(); 说明 开启串口,通常置于setup()函数中. 语法 Serial.begin(speed); Seri…
C# 串口操作系列(4) -- 协议篇,文本协议数据解析 标签: c#uiobjectstringbyte 2010-06-09 01:50 19739人阅读 评论(26) 收藏 举报  分类: 通讯类库设计(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾.即: 协议头 + 数据 + 校验 + 数据尾 . 文本方式的数据比…
序言:最近做了一个智能体育项目——跆拳道积分系统,硬件部分会向软件传入振动值等数据,链接方式为串口,所以用到SerialPort类. 值得注意的是: DataReceived 方法,当串口缓冲区有数据时执行该方法. ReceivedBytesThreshold属性决定了当串口读缓存中数据多少个时才触发DataReceived事件,默认为1.串口接收的指令可能是错误值,所以这块根据自己需求进行设置. 首先需要引用SerialPort using System.IO.Ports; 创建全局串口对象…
VREP Regular API提供了串口操作的相关函数,可以对串口进行打开.关闭和读写: 下面使用一款淘宝上常见的AHRS(Attitude and heading reference system,航姿参考系统)模块来驱动VREP中的虚拟模型,控制其姿态.VREP通过串口读取传感器实时发送的数据并进行解析. 传感器通过串口发送2种数据: 解算后的姿态角和气压高度等数据 原始的传感器ADC数据(直接从传感器读取出来的测量值,没有经过解算处理) 下面是VREP中以16进制显示的接收到的串口数据:…
串口操作中,特别以非阻塞的方式读取和发送数据,做好进程之间的同步很重要.有时我们会发现这样一个问题,在进行read操作时,一次read不能获得一个完整的数据帧,这就好比你买了一个电脑,送货的先把显示器送到你家,再把机箱送到,你会发现还少键盘鼠标什么的,又要过几天才送,这会让你急死.很不幸,在串口操作的时候,接受数据很可能就是这样分批收货的,但是幸运的是,接受数据的动作很快,别忘了计算机就是靠速度这一点,抛开这个,啥都不是. 很自然的,我们就会进行数据的拼接,将一堆零散的数据拼接成一个个有用的数据…
程序说明 V1.0 2015/2/08 MATLAB串口操作和GUI编程   概述   本文介绍了程序AD9512_Serial_GUI的编程思路和功能.该程序设计到MATLAB的图像用户界面编程的基本方法和串口的基本操作.程序目的在于通过串口写控制字对AD9512进行配置(AD9512通过SPI写入寄存器,本程序只是整个控制程序中的一部分). 修订历史 以下表格展示了本文档的修订过程 日期 版本号 修订内容 2015/01/15 V0.0 初始版本,试验版[1] 2015/02/06 V1.0…
https://blog.csdn.net/fengda2870/article/details/51554838上面的链接给出了提示: 将Invoke变为BeginInvoke. 亲测可行. private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { if (this.InvokeRequired) { this.BeginInvoke(new DataReceived(SerialP…
Imports SystemImports System.IO.Ports Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load        '获取计算机有效串口        Dim ports As String() = SerialPort.GetPortNames() '必须用命名空间,用Seria…
第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁.天哪,我可不是武断,算了.不要太绝对了.99.9%的人吧,都遇到过这个问题.我想只有一半的人真的解决了.另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了. 你看到我的文章,就放心吧,这问题有救了.我们先回顾一下上一篇中的代码 void comm_DataReceived(object sender, SerialDataReceivedEventArgs…
串口进行操作的类,其中包括写和读操作,类可设置串口参数.设置接收函数.打开串口资源.关闭串口资源,操作完成后,一定要关闭串口.接收串口数据事件.接收数据出错事件.获取当前全部串口.把字节型转换成十六进制字符串等功能.这个串口类已经过了调试,可以使用: using System; using System.Collections.Generic; using System.Text; using System.IO.Ports; using System.Globalization; namesp…
本文转自:https://blog.csdn.net/weixin_41415541/article/details/80921956 因为公司项目需要将USB扫码枪改为串口扫码枪,串口扫码的好处在于不需要一个输入框来接受USB扫出来的文本,能解决多个扫码枪一起扫码时的并发问题,所以需要用到多线程及串口技术. 一.串口通信简介串行接口(串口)是一种可以将接受来自CPU的并行数据字符转换为连续的串行数据流发送出去,同时可将接受的串行数据流转换为并行的数据字符供给CPU的器件.一般完成这种功能的电路…
SerialPort类的常用属性 名 称 说 明 BaseStream 获取 SerialPort 对象的基础 Stream 对象 BaudRate 获取或设置串行波特率 BreakState 获取或设置中断信号状态 BytesToRead 获取接收缓冲区中数据的字节数 BytesToWrite 获取发送缓冲区中数据的字节数 CDHolding 获取端口的载波检测行的状态 CtsHolding 获取"可以发送"行的状态 DataBits 获取或设置每个字节的标准数据位长度 Discar…
串口解析显示中文 private String SerialPortReadStr() { try { String str = null; int n = serialPort1.BytesToRead;//数据接收缓存区的字接数 byte[] buffer = new byte[n];//创建临时字节数组 serialPort1.Read(buffer, 0, n);//从缓存区读取数据 str = Encoding.GetEncoding("GB2312").GetString(…
主要介绍在Linux应用程序下对串口的操作: 1.串口初始化 int InitCom() { int Ret; Ret = SerailComm.OpenCom( ComPortDevPath, 0 ); if( Ret < 0 ) { return Ret; } if(SerailComm.SetComSpeed( ComBaudRate ) < 0 ) { SerailComm.CloseCom(); return Ret; } if(SerailComm.SetComParity(8,…
背景 App需要串口进行通讯,在此做个记录和简要说明. 正文 添加命名空间 using System.IO.Ports; 实例化串口 SerialPort serialPortO = new SerialPort(); 设置SerialPort参数 // 获取当前所有的COM口讯息 String[] serialPort1Array = SerialPort.GetPortNames(); if (serialPort1Array != null && serialPort1Array.L…
public class CommPort : IDisposable { public string Port = ""; ///<summary> ///波特率9600 ///</summary> private int BaudRate = 9600; public int BaudRater { set { BaudRate = value; } } ///<summary> ///数据位4-8 ///</summary> pub…
/**********************************************************************/  /*  名称:串口通讯 功能:将接到的数据组后原封不动的发送出去 */ /**********************************************************************/ #include  <msp430x41x2.h> unsigned char i,ii,n; unsigned char RX[2…
一.Linux下访问串口 串口位置:/dev/tty** 在Linux系统中,串口设备是通过串口终端设备文件来访问的,也就是通过访问/dev/ttyS0./dev/ttyS1./dev/ttyS2./dev/ttyS3 ./dev/ttyUSB* 这是USB转串口.这些设备文件实现对串口的访问. 1.1.2 查看串口 ls命令: ls -l /dev/tty* 查看有哪些设备连接在你的电脑上: lsusb 产看串口个数以及对应的tty: dmesg | grep ttyS* ~~~ 我使用了一个…
公司需要纸币器开发,参考纸币器文档和网上的一篇vb版本,代码如下: # -*- coding:utf-8 -*- # Author: Pete Yim<xpHook@gmail.com> # Date : 13-7-31 import threading import serial from time import sleep GLOBAL_COUNT = 0 GLOBAL_OUT_INIT_NUM = 0 GLOBAL_OUT_CHECK_NUM = 0 COMMAND_INIT_FLAG…
1.安装pyserial linux上直接安装: #python2 sudo pip install pyserial #或者python3 sudo pip3 install pyserial Windows上安装: 批处理中输入如下命令 pip install pyserial 注:pip为python包安装器,请自行安装…
void scia_fifo_init(int ibaud) { SciaRegs.SCICCR.all =0x0007; // 1 stop bit, No loopback // No parity,8 char bits, // async mode, idle-line protocol SciaRegs.SCICTL1.all =0x0003; // enable TX, RX, internal SCICLK, // Disable RX ERR, SLEEP, TXWAKE Sci…
转自:http://www.cnblogs.com/darryo/p/selectpollepoll-on-serial-port.html In this article, I will use three asynchronous conferencing--select, poll and epoll on serial port to transmit data between PC and Raspberry pi. Outline Character device file of s…
开发LED大屏显示.40-20mA模拟量输出的时候,经常要与串口打交道.但是Windows自带的SerialPort串口操作组件貌似兼容性 不是太好,或是SerialPort本身有BUG,在操作PCI-1621D多串口卡的时候出现异常信息:“参数不正确”,至于PCI-16XX系列的多串口是否都是这样的,还没有进一步测试. 软件输出的异常信息如下图: 工业串口和网络软件通讯平台(SuperIO)平台一开始使用是MSCOMM32.OCX组件,但是在做项目的过程中,复杂的应用环境,出现很多意想不到的问…