使用过一些网上一些大神的代码后,或多或少都有点小缺陷,关于数据读取缺失或者一些不太满意的问题,于是整合了一下。

一次性读取完整串口数据。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO.Ports;
using System.Threading;
using System;
using System.Text;public class PortControl : MonoBehaviour
{[Header("串口名")] public string portName = "COM3";[Header("波特率")] public int baudRate = 9600;[Header("效验位")] public Parity parity = Parity.None;[Header("数据位")] public int dataBits = 8;[Header("停止位")] public StopBits stopBits = StopBits.One;private SerialPort sp = null;private Thread dataReceiveThread;private Global global;private byte[] datasBytes;int i = 0;private string OneString;private string OtherString;private void Start(){global = Global.Instance;OpenPortControl();}/// <summary>/// 开启串口/// </summary>public void OpenPortControl(){sp = new SerialPort(portName, baudRate, parity, dataBits, stopBits);//串口初始化if (!sp.IsOpen){sp.Open();}dataReceiveThread = new Thread(ReceiveData);//该线程用于接收串口数据 dataReceiveThread.Start();}/// <summary>/// 关闭串口/// </summary>public void ClosePortControl(){if (sp != null && sp.IsOpen){sp.Close();//关闭串口sp.Dispose();//将串口从内存中释放掉}}private void ReceiveData(){int bytesToRead = 0;while (true){if (sp != null && sp.IsOpen){try{datasBytes = new byte[1024];bytesToRead = sp.Read(datasBytes, 0, datasBytes.Length);if (bytesToRead == 0){continue;}else{string strbytes = Encoding.Default.GetString(datasBytes);i++;if (i == 1){OneString = strbytes[0].ToString();}else if (i == 2){OtherString = OneString + strbytes;i = 0;Debug.Log(OtherString);}//Debug.Log(strbytes);}}catch (Exception e){Debug.Log(e.Message);}}Thread.Sleep(100);}}void OnApplicationQuit(){ClosePortControl();}
}

unity完整读取串口数据方法相关推荐

  1. RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法

    RXTXcomm.jar 读取串口数据时报 Underlying input stream returned zero bytes 异常解决方法 一.示例程序 1.依赖 2.示例代码 3.测试读取文件 ...

  2. Unity读取串口数据

    读取串口数据的过程其实就跟你读取文件操作IO时的过程差不多: 首先要使用using System.IO.Ports;时需要先将 改为 具体操作: Edit -> Project Settings ...

  3. 如何在QT中读取串口数据

    总是能在别人的博客中学到太多太多,谢谢各位对知识的无私共享,谢谢大家 前言 去年我使用Qt编写串口通信程序时,将自己的学习过程写成了教程(Qt编写串口通信程序全程图文讲解),但是由于时间等原因,我只实 ...

  4. python串口通信_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

  5. python监听串口数据_python 读取串口数据的示例

    python3 读取串口数据 demo 最近在写一个demo,zigbee串口连接树莓派,树莓派使用串口通信接受zigbee穿过来得值.其中我是用的树莓派是3代B+,zigbee每隔三秒钟从串口输出数 ...

  6. web前端读取串口数据

    来自扫码枪应用适配的经验及扩展. 查了好多资料,发现实现思路不外乎以下几种: 1.使用服务端开发语言开发一个读取串口数据的本地服务模块,并实现websocket长连接支持,前端开启长连接到该服务,根据 ...

  7. Java读取串口数据

    本文主要实现读取员工刷卡信息 将淘宝买的刷卡IC卡读取器插入Windows笔记本的USB接口,安装驱动,设备管理器会自动添加一个模拟的COM3串口 本次使用的Java环境为 java version ...

  8. java 读取串口数据

    串口资料 链接:https://pan.baidu.com/s/1jVO47WF7pCO6kDLezsBZ0g 提取码:hgwn 这段时间遇到了读取串口数据的需求,吭哧吭哧搞了两三天才搞出来,惭愧,所 ...

  9. windows下C++读取串口数据

    windows下C++读取串口数据 这里提供一个类: SerialPort.h #pragma once #ifndef SERIALPORT_H_ #define SERIALPORT_H_ #in ...

最新文章

  1. Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)
  2. HAproxy七层负载均衡介绍
  3. java - 分页类
  4. 数据库的简单操作命令
  5. 曳舞---1、曳舞各个动作要点
  6. 【AI大咖】ML宗师乔教主,Science评选的全世界最有影响力的计算机科学家
  7. wpf 控件大小随窗体大小改变而改变
  8. Java 反射(初步)
  9. tensorflow之variables_to_restore
  10. 华为6p连接计算机设置在哪里设置密码,华为路由器和华为手机如何不用密码连接...
  11. 【每日算法Day 89】手动实现字符串转整数(atoi)函数,你会吗?
  12. matplotlib 2.2.4 has requirement python-dateutil=2.1, but you'll have python-dateutil 1.5
  13. Windows传统取证的一些笔记
  14. Audition 如何录制电脑内部声音
  15. java条形码识别_java openCV 识别条形码
  16. java方法的通用格式,【学习笔记】使用Java读取、写入Excel全版本(包含xls、xslx格式)通用方法及代码展示(POI)...
  17. react钩子_了解用户的React钩子
  18. 一文彻底搞懂BP算法:原理推导+数据演示+项目实战(下篇)
  19. java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
  20. 中恒达软件测试,天线测试系统-恒达微波.PDF

热门文章

  1. 统一身份认证简单对接流程
  2. NCRE计算机等级考试Python真题(六)
  3. Linux服务器挂载U盘
  4. 简历解析步骤(第二步)技术与实现(8)政治面貌、语言能力、 英语水平、 计算机水平
  5. 廖雪峰历时3个月打磨出价值1980的数据分析教程,终终终于免费啦!
  6. IF函数超实用的12种经典用法
  7. 爬取百度贴吧的标题,发帖人,发帖时间
  8. php7 beast,HP源码加密工具(php-beast)php7版
  9. python类变量和实例变量的区别
  10. 机器学习实践:超市商品购买关联规则分析