.net SerialPort】的更多相关文章

private SerialPort sPort = new SerialPort(); //串行端口资源 /// <summary> /// 函数功能:打开串口/关闭串口 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object…
SerialPort中串口数据的读取与写入有较大的不同.由于串口不知道数据何时到达,因此有两种方法可以实现串口数据的读取.一.线程实时读串口:二.事件触发方式实现. 由于线程实时读串口的效率不是十分高效,因此比较好的方法是事件触发的方式.在SerialPort类中有DataReceived事件,当串口的读缓存有数据到达时则触发DataReceived事件,其中SerialPort.ReceivedBytesThreshold属性决定了当串口读缓存中数据多少个时才触发DataReceived事件,…
开发LED大屏显示.40-20mA模拟量输出的时候,经常要与串口打交道.但是Windows自带的SerialPort串口操作组件貌似兼容性 不是太好,或是SerialPort本身有BUG,在操作PCI-1621D多串口卡的时候出现异常信息:“参数不正确”,至于PCI-16XX系列的多串口是否都是这样的,还没有进一步测试. 软件输出的异常信息如下图: 工业串口和网络软件通讯平台(SuperIO)平台一开始使用是MSCOMM32.OCX组件,但是在做项目的过程中,复杂的应用环境,出现很多意想不到的问…
SerialCommunication是我综合网上看到的代码稍作修改而成的串口通信类,而SerialPort则是C#的System类库的IO目录Ports子目录下的串口通信类.SerialCommunication只有区区的二百多行,而SerialPort则有几千行.下面我将介绍SerialPort相对于SerialCommunication好在哪里. 首先是一些基本字段的对比. /// <summary> /// 波特率 /// </summary> public int Bau…
SerialPort类用于控制串行端口文件资源.提供同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问.另外,SerialPort的功能可以包装在内部 Stream 对象中,可通过 BaseStream 属性访问,并且可以传递给包装或使用流的类. 下面本文将如何通过实现COM端口配置.SerialPort调用配置打开端口.对设备端口进行读取操作. 1.        实现COM端口配置 COM端口主要配置有:COM端口名称.波特率.数据位数.停止位.奇偶校验及…
简介最近工作中需要读取gps设备的信息,平板本身有内置的gps设备,但是精度不够,就又添加了一个外置的gps.对于外置的gps,我们主要通过SerialPort类来获得串口的信息,然后对接收到的内容进行解析处理,对于内置的gps,我们可以通过GeoCoordinateWatcher类来方便的获取gps数据. 使用 SerialPort 设置串口属性进行串口通讯时,需要设置一些相关参数,可以通过设置SerialPort 类的属性来进行.串口属性主要包括.PortName 串口名称,COM1, CO…
做项目是遇到了串口通信,真是遇到了一个大坑,不知道是微软的坑还是我的坑. 让我慢慢道来完整的经历. 项目中以前是vb 写的,是vb与vb 之间进行串口通信,现在改成C#和之前的vb程序进行串口通信. 改成C#之后发现通信总有一段乱码,,之前的vb也没有这样的问题.思前想后总共也就那几句代码实在想不去哪里的问题. 调试也不知从何下手.最后下载了一个串口调试工具进行调试,发现明明应该8秒钟发一次请求,结果几乎每隔一秒左右就发送一次请求. 每次发送的都是一个未知字符.让我实在是想不出哪里的问题.大致代…
问题 最近比较经常使用串口进行发送以及传输数据,但是笔者在刚开始接触SerialPort类时,对于Write之后去Read数据的时候,由于设备上面还没有返回数据,读取到的只能是空值.然而,再进行下一次Write操作的时候,可能返回上一次数据和这一次数据.这样使得笔者得到的数据难以保持准确性. 1.解决思路 对于上面的问题,由于数据要实时的进行返回.所以笔者想法就是在Write之后,使用线程等待(Thread.Sleep)去等待数据返回.但是最终等待多久,根据串口传输以及设备返回命令所决定.这个等…
既然是秘籍,显然是写一些大家不常找到的,MSDN里遗漏提示大家注意的东西. 用过.net 2.0中,自带SerialPort的人,大多都遇到过.莫名其妙的执行Close的时候会死掉的问题.而Wince,mobile下,甚至Write,WriteLine的时候也会死锁.这和串口底层驱动有关. 1.Close的时候死机问题 我只是猜测,Close执行的操作是调用2个API: SetCommMask(m_hComPort,0);WaitForSingleObject(m_pThread->m_hThr…
目录 第1章说明    2 1 为什么需要异步写数据?    2 2 异步写数据的代码    2 3 源代码    4 第1章说明 1 为什么需要异步写数据? 如下图所示,以波特率300打开一个串口. 图1 单击"同步发送"按钮,则数据未发送完之前写数据的函数不会返回.波特率300,每秒大概能发送25个字符,发送500个字符就需要20秒.这20秒之内,整个程序将处于假死状态. 单击"异步发送"按钮,就不会出现假死状态. 2 异步写数据的代码 异步写数据的代码如下:…