用C#编写上位机,基本流程是【1】串口配置,【2】串口发送数据,【3】串口接收数据。

【1】串口配置

  串口的属性配置包括:

  No.1串口端口号

  No.2串口波特率

  No.3串口数据位

  No.4串口停止位

  N0.5串口校验位

串口的上述属性,分别将值存储进combobox里边,然后带用户根据实际情况自己进行选择,设置也比较简单。

串口的打开和关闭,采用try-catch这对组合,可以自动打开和关闭处理过程中出现的问题。

【2】串口发送数据

串口发送数据,采用串口的write属性,该属性有三种重载方式,string,byte,char三种,分别是字符串,字节,字符三种。

             if (serialPort1.IsOpen == true)
{
try
{
Byte[] mes = new Byte[] { ,,};
char[] chr = new char[] { 'a','b','c'};
serialPort1.Write(mes,,);
serialPort1.Write(chr,,);
serialPort1.Write("Hello");
MessageBox.Show("发送成功");
}
catch
{
MessageBox.Show("发送失败");
}
}

Write的Byte和char函数接口解释为,首先告诉write用的哪一个数组,从数组第几个位开始发数据,发几个数据。
如此,下位机,讲分别收到1,a,Hello数据。

【3】串口接收数据

 Control.CheckForIllegalCrossThreadCalls = false;
serialPort1.DataReceived += new SerialDataReceivedEventHandler(SP1REV);
serialPort1.ReceivedBytesThreshold = ;
         void SP1REV(object sender, SerialDataReceivedEventArgs e)
{
if (serialPort1.IsOpen == true)
{
try
{
Byte[] REV = new Byte[serialPort1.BytesToRead];
serialPort1.Read(REV, , REV.Length);
serialPort1.DiscardInBuffer();
textBox1.Text += Encoding.ASCII.GetString(REV);
}
catch
{
MessageBox.Show("接收出错");
}
}
}

【实验室笔记】C#上位机学习笔记的更多相关文章

  1. 【神经网络与深度学习】学习笔记:AlexNet&Imagenet学习笔记

    学习笔记:AlexNet&Imagenet学习笔记 ImageNet(http://www.image-net.org)是李菲菲组的图像库,和WordNet 可以结合使用 (毕业于Caltec ...

  2. 嵌入式Linux学习笔记(六) 上位机QT界面实现和串口通讯实现

    目录 (1).参考资料 (2).QT界面布局实现 (3).数据和操作逻辑 在上一章我们实现了下位机的协议制定,并通过串口通讯工具完成了对设备内外设(LED)的状态修改,下面就要进行上位机软件的实现了( ...

  3. 【工作笔记】BAT批处理学习笔记与示例

    BAT批处理学习笔记 一.批注里定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD,这些命令统称批处理命令. 二.常见的批处理指令: 命令清单: 1.RE ...

  4. 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集

    Result学习笔记(三)带參数的结果集 第一部分:代码 //前端 <head> <meta http-equiv="Content-Type" content= ...

  5. 【web开发学习笔记】Structs2 Action学习笔记(两)

    action学习笔记2-大约action method讨论 Action运行的时候并不一定要运行execute方法,能够在配置文件里配置Action的时候用method=来指定运行哪个方法 也能够在u ...

  6. 【MarkMark学习笔记学习笔记】javascript/js 学习笔记

    1.0, 概述.JavaScript是ECMAScript的实现之一 2.0,在HTML中使用JavaScript. 2.1 3.0,基本概念 3.1,ECMAScript中的一切(变量,函数名,操作 ...

  7. 【web开发学习笔记】Structs2 Result学习笔记(一)简介

    Structs2 Result学习笔记(一)简介 问题一 <struts> <constant name="struts.devMode" value=" ...

  8. 【web开发学习笔记】Structs2 Result学习笔记(二)动态结果集

    Result学习笔记(二) - 动态结果集     动态结果 一定不要忘了为动态结果的保存值设置set get方法 第一部分:代码 //前端 <% String context = reques ...

  9. 《深入理解计算机系统》学习笔记整理(CSAPP 学习笔记)

    简介 本笔记目前已包含 CSAPP 中除第四章(处理器部分)外的其他各章节,但部分章节的笔记尚未整理完全.未整理完成的部分包括:ch3.ch11.ch12 的后面几小节:ch5 的大部分. 我在整理笔 ...

随机推荐

  1. JSON.toJSONString的jar包问题

    toJSONString()方法的jar包不在json-lib中,简单点阿里巴巴给我们封装好的json包,也是开源的alibaba.fastjson.JSON,网上搜fastjson应该就有了.

  2. angularJS懒加载依赖模块

    //设置 .config [ '$ocLazyLoadProvider' ($ocLazyLoadProvider) -> # We configure ocLazyLoad to use th ...

  3. 1、<img />标签

    alt:当图片不显示时的文字说明 title:鼠标悬停在图片上的出现的文字说明

  4. ubuntu搭建git服务器

    1.准备两台ubuntu虚拟机,其中一个作为server,另一个作为client.检查是否安装ssh,如果没有安装:sudo apt-get install openssh-server, 然后在se ...

  5. MocorDroid编译工程快速建立编译环境

    function sprdLunch(){    declare -a arrProj    arrProj=`find out/target/product -name previous_build ...

  6. lnmp一键安装包配置laravel项目

    laravel一键安装包:https://lnmp.org/install.html 在server中加入 location / { try_files $uri $uri/ /index.php?$ ...

  7. 微信小程序开发详解——小程序,大颠覆!

    微信小程序开发 联系 苏念 188.1414.7927  微信小程序系统开发 微信新功能开发 小程序开发 小程序怎么开发 app小程序开发 简化小程序开发 微信小程序定制 小程序制作 开发微信小程序  ...

  8. php添加扩展插件

    给PHP安装扩展的方式有好多 一.重新编译 进入PHP源码目录./configure --prefix=/usr/local/php ...[其他编译参数] 二.通过phpize添加扩展 进入PHP源 ...

  9. 使用mybatis多表联查的时候结果异常及springmvc的理解

    今天使用mybatis多表联查的时候,在dos窗口查询时可以出结果集,但是使用mybatis查询的时候最后返回的结果只有最后一个结果 然后研究了半天没弄出来,后来无意中发现添加了最外层从表的ID字段后 ...

  10. SDK平台三态按钮的实现

    Windows平台提供了丰富的控件,但是在使用中我们不会使用它提供的默认风格,有时候需要对控件进行改写,让它展现出更友好的一面,这次主要是说明三态按钮的实现. 三态按钮指的是按钮在鼠标移到按钮上时显示 ...