winform 端口serialport简用
最近的一个小项目中需要从串口读取摄像机的应答指令,因此在程序中用到了SerialPort控件(使用SerialPort类也可以)。
在SerialPort控件的属性列表中主要注意3个地方:
(1)PortName:表示要打开的通信端口名称;
(2)BaudRate:表示端口的波特率;
(3)ReceivedBytesThreshold:表示触发SerialPort控件的DataReceived事件前输入缓冲区里的字节数;
在这个小项目中,PortName的值为摄像机与电脑连接的端口(可通过设备管理器查看);
BaudRate的值与摄像机串口设置的值一致;
ReceivedBytesThreshold默认为1,表示当输入缓冲区中有1个字节就触发SerialPort控件的DataReceived事件(
//初始化窗体
private void Form1_Load(object sender, EventArgs e)
{
serialPort1.ReceivedBytesThreshold = 1;
serialPort1.PortName = "COM3";
serialPort1.BaudRate = 9600;
serialPort1.Open();//打开串口
serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(serialPort1_DataReceived);
}
//serialPort1控件的DataReceived事件
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.Read(Data,0,4);//data数组用于存储读取的数据
}
使用一个Button控件来向摄像机发送查询指令
private void btnSend_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen == true)
{
serialPort1.Write(Power, 0, 5);//Power数组用于存储发送给摄像机的查询指令
}
}
在该事件中使用SerialPort.Read读取输入缓冲区中的数据)
winform 端口serialport简用的更多相关文章
- 【winform】serialPort 串口
一. 1.串口通信简单实现 该来的总会来的,学做硬件的,串口这个东西必须得门清. 俗话说的好,不会做串口助手的电子工程师不是好程序员.
- Winform下极简后台异步工作教程
BackgroundWorker worker = new BackgroundWorker();//定义后台进程 worker.WorkerReportsProgress = true;//允许报告 ...
- 使用SerialPort 读取外置GPS信息和使用GeoCoordinateWatcher获取内置gps的信息
简介最近工作中需要读取gps设备的信息,平板本身有内置的gps设备,但是精度不够,就又添加了一个外置的gps.对于外置的gps,我们主要通过SerialPort类来获得串口的信息,然后对接收到的内容进 ...
- Windows完成端口与猪肉佬
首先应该说明的是,我也是第一次使用完成端口.虽然以前偶尔在网上看到完成端口的文章和代码,但真正自己动手写还是第一次,不过我这个人有个特点就是大胆,例如没有写那个界面编程系列前,其实我甚至不知道原来一个 ...
- C#,COM口,接收,发送数据
这里写一种,COM口的数据接收,发送方法. 1.COMHelper类 /// <summary>初始化串行端口</summary> private SerialPort _se ...
- VS编程,C#串口通讯,通过串口读取数据的一种方法
一.可能需要的软件:1.虚拟串口vspd(Virtual Serial Port Driver,用来在电脑上虚拟出一对串口,模拟通讯. 2.友善串口调试助手,用来发送.读取数据. 二.思路1.查询本机 ...
- C# 之 串口数据侦听的实现
当需要编程操纵硬件时会遇到过这样的问题,就是通过串口来接收硬件发来的数据,或是通过串口向硬件发送某种格式的命令.在C#平台上,可以通过 System.IO.Ports 命名空间下的SerialPort ...
- 如何通过SerialPort读取和写入设备COM端口数据
SerialPort类用于控制串行端口文件资源.提供同步 I/O 和事件驱动的 I/O.对管脚和中断状态的访问以及对串行驱动程序属性的访问.另外,SerialPort的功能可以包装在内部 Stream ...
- C# 过滤SerialPort端口
C#中的SerialPort类只能通过SerialPort.GetPortNames()来获取端口名字,而且出来都是COM+数字的字样,如果我要识别COM端口是什么设备的,它就无能为力了,此时我们可以 ...
随机推荐
- iview+axios实现文件取消上传
iview+axios实现文件取消上传 iview框架的上传文件目前不支持在上传文件的过程中取消上传,结合axios请求可以实现:使用iview的上传和拖拽功能,却使用axios的上传文件功能来实现取 ...
- SpringMVC知识点总结
1. SpringMVC概述 SpringMVC是一个WEB层框架,主要用来负责与页面的交互. SpringMVC是Spring家族的一大组件.Spring整合Spring ...
- IE浏览器关于ajax的缓存机制
IE浏览器对于同一个URL只返回相同结果.因为,在默认情况下,IE会缓存ajax的请求结果.对于同一个URL地址,在缓存过期之前,只有第一次请求会真正发送到服务端.大多数情况下,我们使用ajax是希望 ...
- JSONP 通用函数封装
function jsonp({url, params, callback}) { return new Promise((resolve, reject) => { let script = ...
- Sass 基础(七)
Sass Maps 的函数-map-remove($map,$key),keywords($args) map-remove($map,$key) map-remove($map,$key)函数是用来 ...
- vue 父子组件相互传值
子传父 逻辑: 单击子组件的按钮 ,触发它的单击事件 通过 $emit 触发父级自定义事件 并传一个值给父级 <div id="id"> <h3>儿子 ...
- c/c++面试总结---c语言基础算法总结2
c/c++面试总结---c语言基础算法总结2 算法是程序设计的灵魂,好的程序一定是根据合适的算法编程完成的.所有面试过程中重点在考察应聘者基础算法的掌握程度. 上一篇讲解了5中基础的算法,需要在面试之 ...
- PyCharm+QT Designer整合
CMD下使用pip安装PyQt4或者PYQT5 这里要注意,你下载的PYQT5不包含QT designer 还要:pip3 install PyQt5-tools,好像Pyqt5中将designer分 ...
- 8.2 USB键盘驱动编写和测试
目标:根据USB驱动分析和上节的USB鼠标驱动,编写键盘驱动,并测试. 一.原理分析 1. 首先通过打印usb_buf[i]中的8字节数据,看一下按键按下之后会接收到什么. 1)通过按完所有键盘按键打 ...
- Flask初学者:url_for
URL反转:反转是指通过视图函数名称得到其对应的URL(有反转也就有正转,即通过URL得到视图函数返回的内容,也就是我们平时的访问网页了),需要“url_for(endpoint, **values) ...