自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

转载 C# 串口操作系列(5)--通讯库雏形

串口是很简单的,编写基于串口的程序也很容易。新手们除了要面对一堆的生僻概念,以及跨线程访问的细节,还有一个需要跨越的难题,就是协议解析,上一篇已经说明了:一个二进制格式的协议一般包含: 协议头 + 数据段长度 + 数据  +校验一个Ascii格式的文本协议,一般包含: 数据头 + 正文 + 数据结束标识类似的命令可能很多,类似的代码也会重复写很多次。对于我,并不觉得这个

2011-10-28 15:21:22 732

转载 C# 串口操作系列(4) -- 协议篇,文本协议数据解析

上一篇已经介绍了协议的组成,一个协议,一般具有 :协议头+长度+数据+校验 , 文本格式可以直观的定义回车换行是协议的结尾,所以我们可以省略数据长度,增加协议尾。即:协议头 + 数据 + 校验 + 数据尾 。文本方式的数据比较容易分析。如果数据缓存,可以考虑用StringBuilder。或是不缓存也可以。文本格式数据大多有换行结尾。稍微修改即可。例如分析常见的NMEA 0183格式的卫

2011-10-28 15:17:33 694

转载 C# 串口操作系列(3) -- 协议篇,二进制协议数据解析

我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面。    我们先说一下通讯协议。通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确。基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验    例如:AA 44 05 0

2011-10-28 15:14:23 1623

转载 C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。

我假设读者已经了解了c#的语法,本文是针对刚打算解除串口编程的朋友阅读的,作为串口编程的入门范例,也是我这个系列的基础。我们的开发环境假定为vs2005(虽然我在用vs2010,但避免有些网友用2005,不支持lambda,避免不兼容,就用2005来做例子) 一个基本的串口程序,既然是个程序了。我们就先从功能说起,包含串口选择波特率选择打开关闭接受数据显示发送数

2011-10-28 15:12:40 1538 4

转载 C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ?

第一篇文章我相信很多人不看都能做的出来,但是,用过微软SerialPort类的人,都遇到过这个尴尬,关闭串口的时候会让软件死锁。天哪,我可不是武断,算了。不要太绝对了。99.9%的人吧,都遇到过这个问题。我想只有一半的人真的解决了。另外一半的人就睁只眼闭只眼阿弥佗佛希望不要在客户那里出现这问题了。     你看到我的文章,就放心吧,这问题有救了。我们先回顾一下上一篇中的代码

2011-10-28 15:11:50 836

转载 C#串口通信时丢失数据的一种解决方法

C#串口通信时丢失数据的一种解决方法刘凯 周云耀武汉理工大学信息工程学院 武汉市(430070)E-mail:lk.6@163.com摘要:C # 串行类( SerialPort )是.NET Framework version 2.0中一个新增的类,该类将串口操作了封装,从而为串口通信提供了简便方法,而且具有功能强大、通信快速、实时性好等特点。但在实际串口通信的应用中,在串口高波

2011-10-28 13:54:37 4576

转载 c#集合类的线程安全

即位于System.Collections命名空间下的集合,如Hashtable,ArrayList,Stack,Queue等.其均提供了线程同步的一个实现集合线程同步的问题public class Demo8{ ArrayList list = new ArrayList(1000000); public Demo8() { Threa

2011-10-28 13:53:39 527

转载 C#中判断字符串是否由数字组成

很多朋友在开发过程中都会遇到把一个大大的字符串中分成若干个小的字符串,然后判断小字符串是否是由字字组成。在这里我给大家提供几个简单的方法。第一种:     try catch方法     例:     try     {       Convert.ToInt32("123"):       Console.Write("是数字");     }     cat

2011-10-26 08:13:02 516

转载 判断一个字符串是否全是数字的多种方法及其性能比较(C#实现)

摘要:文章:判断一个字符串是否全是数字的多种方法及其性能比较(C#实现) 摘要:在编程的时候,经常遇到要判断一个字符串中的字符是否全部是数字(0-9),本来是一个很容易实现的功能,但程序员首先会想到的,发表于北京联高软件有限公司技术文章栏目,代码以高亮显示。关键字:字符, 数字, 性能, 判断, time, seconds, isnumeric, int, end, start, 函数, ex

2011-10-26 08:12:13 540

转载 C#解决串口通信中接收数据时延迟处理与缓存处理的方法

利用串口进行通信,当发送方(A)将数据写入串口后,通过无线或有线方式将数据传送给接收方(B),B通过调用串口读方法comm.read(参数)即可将数据读出。原理十分简单,但最近在利用串口处理SM-42无线传输时,数据总是一段一段的传到B,并不能在comm_DataReceived方法中单纯使用read方法将数据接收完全。我知道用缓存机制,但由于经验少(正在实习),到网上找了找大牛们的方法,并结合自

2011-10-26 08:07:08 4338

转载 串口程序接收数据一段时间后出现乱码

发送端数据太快的问题 需要在发送端加延时; 用这个东西监控一下端口状况:http://technet.microsoft.com/zh-cn/bb896644.aspx[/Quote]我用过一个串口跟踪器一样的东西,但是这个东西也只是从我的缓存里面读取数据,跟我编的程序读数据的结果是一眼的啊.用串口监控软件监控串口,在出现乱码的时候先确定下是发送的问题还是接收到问题

2011-10-26 08:05:09 4480

转载 UART0串口编程

本文章针对的是ARM2200环境下编写串口程序,其中设计轮循方式,中断方式,以及在UC/OS-II操作系统下的串口编程。使用轮循和中断两种方式来实现串口编程。(当然了,用中断实现串口编程,系统的效率较高。但是难度也较大 。轮循方式效率较低,但是编程比较简单)UART0串口编程目录:串口编程之前奏篇 UART0串口编程系列(一)裸机下的轮训方式的串口编程UART0串口编程

2011-10-19 15:10:21 2354 2

转载 datagridview中的取值

//DataGridViewRow dgvr = dataGridView1.CurrentRow;                //DataRowView drv = (DataRowView)dgvr.DataBoundItem;                //MessageBox.Show(drv.Row[0].ToString());//选中行的值,[0]表是第一列的值

2011-10-19 15:05:35 1269

转载 SerialPort类实现串口通信时遇到的多线程问题

在.NET work 2.0中提供了SerialPort类,该类主要实现串口数据通信等。本文章将本人在学习过程中从网络上搜集到的相关信息写出来供大家参考。下面主要介绍该类的主要属性(表1)和方法(表.2)。如果需要了解更多的信息请登录http://msdn.microsoft.com/zh-cn/library/system.io.ports.serialport(VS.80).aspx查

2011-10-19 15:03:44 1720

转载 进度条的使用

在用c#做WinFrom开发的过程中。我们经常需要用到进度条(ProgressBar)用于显示进度信息。这时候我们可能就需要用到多线程,如果不采用多线程控制进度条,窗口很容易假死(无法适时看到进度信息)。下面我就简单结合一个我写的例子给大家做一个介绍。第一步:设计界面不说了...注意需要引用 using System.Threading;第二步:定义一个代理,用于更新ProgressBar

2011-10-14 10:33:00 336

转载 C#常用小技巧

先给个网址http://www.dotblogs.com.tw/chou/archive/2009/04/12/7986.aspx 产生随机数的类RandomRandom r =new Random();num=r.Next(1,500);//产生一个1-500之间的随机数。使用C#实现移动无边框窗体如需了解更多请上http://hi.baidu.com/nirvanan/bl

2011-10-08 13:27:07 228

转载 人类无法抗拒的10种心理

1、鸟笼逻辑                                           挂一个漂亮的鸟笼在房间里最显眼的地方,过不了几天,主人一定会做出下面两个选择之一:把鸟笼扔掉,或者买一只鸟回来放在鸟笼里。这就是鸟笼逻辑。过程很简单,设想你是这房间的主人,只要有人走进房间,看到鸟笼,就会忍不住问你:“鸟呢?是不是死了?”当你回答:“我从来都没有养过鸟。”人们会问: “那么,你

2011-10-08 13:24:35 463

转载 SerialPort缓冲区

SerialPort缓冲区中有:接收缓冲区,发送缓冲区,输入缓冲区,输出缓冲区,传输缓冲区。例如:串口属性:BytesToRead(获取接收缓冲区中数据的字节数)--这里提到的是“接收缓冲区”串口属性:ReadBufferSize(获取或设置 System.IO.Ports.SerialPort 输入缓冲区的大小)---这里提到的是“输入缓冲区”串口属性:BytesToWrite(

2011-10-08 10:30:32 4974 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除