1. using System;
  2. using System.Collections.Generic;
  3. using System.IO.Ports;
  4. using System.Text;
  5.  
  6. //串口通讯类
  7. public class SerialPortManager
  8. {
  9.  
  10. //声明一个静态的串口资源
  11. private SerialPort ComDevice = new SerialPort();
  12. public SerialPortManager()
  13. {
  14. var portList = SerialPort.GetPortNames();//获取当前搜索到的串口集合
  15. ComDevice.DataReceived += new SerialDataReceivedEventHandler(Com_DataReceived); //绑定事件,接收到串口数据时触发
  16. }
  17.  
  18. /// <summary>
  19. /// 打开和关闭串口,
  20. /// 前端放个按钮调用这个方法
  21. /// 串口名称用SerialPort.GetPortNames()拉取所有串口,上面构造有写
  22. /// 下面相关的参数具体有些哪些百度下就知道了,这块只是举例,当然也可以直接用
  23. /// </summary>
  24. /// <param name="serialPortName">串口名称</param>
  25. /// <returns></returns>
  26. public void openOrCloseSerialPort(string serialPortName)
  27. {
  28. //判断当前状态是打开还是关闭,开启的话就关闭,反之就开启
  29. if (ComDevice.IsOpen == false)
  30. {
  31. //设置串口名称
  32. ComDevice.PortName = serialPortName;
  33. //设置波特率
  34. ComDevice.BaudRate = ;
  35. //设置数据位 
  36. ComDevice.DataBits = ;
  37. //校验位设置
  38. ComDevice.StopBits = StopBits.One;
  39. //停止位设置
  40. ComDevice.Parity = Parity.None;
  41. //开启串口
  42. ComDevice.Open();
  43. }
  44. else
  45. {
  46. ComDevice.Close();//关闭串口
  47. }
  48. }
  49.  
  50. /// <summary>
  51. /// 串口数据读取方法,在构造时已经监听
  52. /// </summary>
  53. private void Com_DataReceived(object sender, SerialDataReceivedEventArgs e)
  54. {
  55. byte[] ReDatas = new byte[ComDevice.BytesToRead];
  56. ComDevice.Read(ReDatas, , ReDatas.Length);
  57. //接收到的字节流
  58. var data = ReDatas;
  59. //根据自己需求转换
  60. var str = new UTF8Encoding().GetString(ReDatas);
  61. }
  62.  
  63. /// <summary>
  64. /// 发送数据方法
  65. /// </summary>
  66. /// <param name="data">需要发送的字节流</param>
  67. public void Com_SendData(byte[] data)
  68. {
  69. if (ComDevice.IsOpen)
  70. {
  71. ComDevice.Write(data, , data.Length);//发送数据
  72. }
  73. }
  74. }

C#串口通讯,复制粘贴就可用,仅仅介绍怎样最快的搭建一个串口通讯,异常拦截等等需要自己加上的更多相关文章

  1. 现在的编辑器不能复制粘贴word中的文本

    我司需要做一个需求,就是使用富文本编辑器时,不要以上传附件的形式上传图片,而是以复制粘贴的形式上传图片. 在网上找了一下,有一个插件支持这个功能. WordPaster 安装方式如下: 直接使用Wor ...

  2. Cocos Creator JS web平台复制粘贴代码(亲测可用)

    Cocos Creator JS web平台复制粘贴代码(亲测可用) 1 webCopyString: function(str){ var input = str; const el = docum ...

  3. Android中的复制粘贴

    Android中的复制粘贴 The Clipboard Framework 当使用clipboard framework时,把数据放在一个剪切对象(clip object)里,然后这个对象会放在系统的 ...

  4. ubuntu快捷复制粘贴

    今天使用putty,纠结复制粘贴的时候,才发现 原来只要选中文本后,就可以中键粘贴 整个桌面环境可用,新技能啊以前居然不知道

  5. 在CMD命令行和PowerShell中实现复制粘贴功能

    在CMD命令行和PowerShell中实现复制粘贴功能         常常使用命令行或者PowerShell的朋友肯定会遇到这样的情况:粘贴文本非常easy,右键--选择粘贴就可以,可是想要复制命令 ...

  6. tmux的复制粘贴

    tmux有面板的概念,这导致普通终端下的ctrl+shift+C的模式复制出来的文本会串行.如果面板只有一列当然没有问题,但当面板有多列时,复制就会出问题.于是tmux提出了类似vim的复制模式.因此 ...

  7. mac电脑复制粘贴使用command+c command+v

    mac电脑复制粘贴使用command+c command+v系统偏好设置--键盘--修饰键(右下角),将ctrl键和command键的功能对换一下即可用ctrl+c ctrl+v复制粘贴缺点:所有的c ...

  8. VMWare12虚拟机实现主客机间的文件拖拽(复制粘贴)和文件夹共享

    版本: 主机:Windows 7 64位旗舰版 虚拟机: VMWare 12 + Windows 7 64位旗舰版 VMWare pro 12 + Ubuntu16.04LTS 64位 注:由于VMW ...

  9. vi的复制粘贴命令 -- (转)

    vi编辑器有3种模式:命令模式.输入模式.末行模式.掌握这三种模式十分重要: 1.命令模式:vi启动后默认进入的是命令模式,从这个模式使用命令可以切换到另外两种模式,同时无论在任何模式下只要按一下[E ...

随机推荐

  1. Java锁_读写锁

    独占锁:是指锁一次只能被一个线程持有,ReentrantLock和Synchronized都是独占锁. 共享锁:是指锁可以被多个线程持有. 对于ReentrantReadWriteLock,其读锁是共 ...

  2. PHP end() 函数

    实例 输出数组中的当前元素和最后一个元素的值: <?php$people = array("Peter", "Joe", "Glenn" ...

  3. PHP strcasecmp() 函数

    实例 比较两个字符串(不区分大小写): <?php高佣联盟 www.cgewang.comecho strcasecmp("Hello world!","HELLO ...

  4. bzoj 2125 最短路 点双 圆方树

    LINK:最短路 一张仙人掌图 求图中两点最短路. \(n<=10000,Q<=10000,w>=1\) 考虑边数是多少 m>=n-1 对于一张仙人掌图 考虑先构建出来dfs树 ...

  5. bzoj 4305 数列的GCD

    LINK:数列的GCD 题意: 给出一个长度为N的数列{a[n]},1<=a[i]<=M(1<=i<=N). 现在问题是,对于1到M的每个整数d,有多少个不同的数列b[1], ...

  6. day8.列表、字典、集合相关操作

    一.列表的相关操作 # (1)列表的拼接 (同元组) # (2)列表的重复 (同元组) # (3)列表的切片 (同元组) # 语法 => 列表[::] 完整格式:[开始索引:结束索引:间隔值] ...

  7. Centos xrdp 远程连接后突然闪退

    问题描述: 可以进入登录页面,但是输入用户名,密码后,直接闪退. 查看 该用户名  ~/.xsession-errors imsettings-check: ): IMSettings-WARNING ...

  8. 一张图理清 Python3 所有知识点

    如果你前几天一直有关注 GitHub Trending,那你应该会留意到「Python3 in one pic」这个开源项目. 很多人学习python,不知道从何学起.很多人学习python,掌握了基 ...

  9. CentOS7 安装 SonarQube

    安装 SonarQube 环境 系统 CentOS 7 数据库 postgresql 10 系统配置 查看系统配置 sysctl vm.max_map_count sysctl fs.file-max ...

  10. Spring的第一个程序

    目录 一.Spring概述 1. Spring是什么? 2. IOC控制反转 二.Spring的第一个程序 1. 创建Maven项目 2. 加入maven依赖pom.xml 3. 定义接口和实体类 4 ...