C#中串口组件的使用方法总结及上位机制作方法
来源:互联网 发布:盘古数据最新消息 编辑:程序博客网 时间:2024/05/01 19:41
一、创建Windows窗体项目
二、添加SerialPort组件
三、默认产生serialPort1对象
四、设置串口属性
三种方法(本实例用第三种)
1.设置下面的属性
2.代码实现
3.用我封装的一个类来实现
五、串口操作(打开关闭)
打开关闭串口的函数包含在SerialPort类中,利用SerialPort对象来引用
serialPort1.Open();
serialPort1.Close();
例如:在程序中添加一个打开串口按钮btn_open,btn_open.Text初始化为"打开串口"
在btn_open响应函数中加入以下代码
此时形成的界面截图如下:
此时程序的代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AHRSmanager;
namespace testOfserialPort
{
}
这时该程序已经具有开关串口的作用,可以用
运行程序,点击串口配置按钮,进行参数配置,点击打开串口,VSPM就将显示串口的打开和关闭.
六、数据的发送
(一) 十六进制数据发送
1.为程序添加发送按钮,命名为btn_send,为程序添加文本输入框tb_send
2.在btn_send的回调函数中添加以下代码
3.测试
将串口配置为COM3,打开VSPM和串口调试助手,调试助手为COM4
打开串口COM3,将要发送的数写入输入文本框(0-255),点击发送在串口调试助手中就会出现相应的十六进制数据显示
命名空间:
程序集:
除了前面用到的串口常规属性设置(BuadRate,PortName),这里用到了一个新的串口属性:
这个ReceiveBytesThreshold属性即是设置串口输入缓冲区中的数据字节大于ReceiveBytesThreshold时触发DataReceived事件。
用法:
<1>在设计器双击串口serialport1的DataReceived事件,在代码中就会自动加入serialPort1_DataReceived函数作为DateReceived的事件触发函数。
<2>作为测试,先将serialport1.ReceiveBytesThreshold设为1,即串口输入缓冲区有数就触发DataReceived事件。
<3>加入RichTextBox rTB_receive作为串口接收数据的显示组件
<4>在DataReceived事件响应函数中读取串口输入缓冲区中的数据
这里serialReadString即为读取到串口输入缓冲区的数据。
要想将其显示到RichTextBox rTB_receive中,这里出现了一个跨线程的问题,因为DataReceived事件是在辅助线程中被激发的,所以要将数据显示到rTB_receive的主线程中就要进行一定的处理,处理方法如下:
C#中SerialPort类中DataReceived事件GUI实时处理方法
一直读取到输入缓冲区中的指定 value 的字符串。
- C#中串口组件的使用方法总结及上位机制作方法
- C#中串口组件的使用方法总结及上位机制作方法
- 上位机-串口通信-C#
- C#串口上位机源代码
- C#中Math的使用方法 总结
- casperjs中start方法的使用方法总结
- QML中ROW组件的使用方法及示例
- C#在WinCE下操作串口的类
- C#做一个简单的进行串口通信的上位机
- C#做一个简单的进行串口通信的上位机
- C#中TreeView组件使用方法初步
- C# 中TreeView组件使用方法初步
- 串口服务器的原理及使用方法
- c++串口上位机调试助手的总结和部分代码
- STM32与上位机串口通讯的学习笔记(简明的数据帧设计方法)
- 串口通信过程中更改波特率的方法 C#实现
- 在C#中实现串口通信的方法
- QT5串口编写简单的上位机
- Android 开发最佳实践
- ruby 类、对象、变量
- 嵌入式环境搭建之开发板软件环境
- IOS学习 关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObject)
- 关于typedef的用法总结
- C#中串口组件的使用方法总结及上位机制作方法
- 总结一些获取系统时间的方法
- qt的stylesheet中如何设置属性使背景图自动调整来适应控件的大小
- 在从1到n的正数中1出现的次数
- Android Path 解析
- Spring的AOP的AspectJ的开发:(注解)
- 第二章第十题(改正后)
- android中的MotionEvent 及其它事件处理
- 结构体对齐方式