private SerialPort serialPort;//串口对象类private string strPortDataReceived = "";//记录串口返回值private string serialPortName = "";//记录端口号private bool isGet = false;/// <summary>/// 获取产品设备号/// </summary>/// <returns>设备号</returns>public List<string> GetProductNumBySerialPort(){List<string> productNumList = new List<string>();string[] ports = SerialPort.GetPortNames();if (ports.Length > 0){for (int i = 0; i < ports.Length; i++){string portName = ports[i];serialPort = new SerialPort(portName, 115200, Parity.None, 8, StopBits.One);//serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);//DataReceived事件委托serialPort.ReceivedBytesThreshold = 1;serialPort.RtsEnable = true;serialPort.WriteTimeout = 500;serialPort.ReadTimeout = 500;try//这里写成异常处理的形式以免串口打不开程序崩溃
                    {serialPort.Open();}catch { }if (serialPort.IsOpen){//byte[] ar = StringToByteHelper.HexStringToByteArray("1F1109");byte[] WriteBuffer = new byte[] { 0x1F, 0x11, 0x09 };try{serialPort.Write(WriteBuffer, 0, WriteBuffer.Length);//获取设备编号
                        }catch (Exception ex){string str = ExceptionClass.GetExceptionMsg(ex, "串口读写超时"+ "\r\n");ExceptionClass.WriteException(str);}//Thread.Sleep(100);int r = 0;//读取返回数据while (serialPort.BytesToRead == 0){r++;Thread.Sleep(1);if (r >= 500){break;}}Thread.Sleep(50); //50毫秒内数据接收完毕,可根据实际情况调整r = 0;byte[] recData = new byte[serialPort.BytesToRead];serialPort.Read(recData, 0, recData.Length);string strPortDataReceived = System.Text.Encoding.Default.GetString(recData);Console.WriteLine(strPortDataReceived);if (strPortDataReceived.Length >= 17){productNumList.Add(strPortDataReceived.Substring(2, 4));}serialPort.Close();//关闭该端口
                    }else{//MessageBox.Show("串口打开失败!");//return false;
                    }}}else{//MessageBox.Show("没有可用的串口!");
            }return productNumList;}

转载于:https://www.cnblogs.com/xunyiHe/p/10538794.html

c# 循环com,分别对串口写入与读取,获取需要的串口信息相关推荐

  1. python实现读取传感器发送到串口的数据,并将读取的串口数据写入文件、数据库存储

    说明:本代码经本人测试,stm89c51等开发板传感器采集数据发送到串口,实现读取并写入数据库,不懂之处大家留言,看见会及时回复大家.    1:读取串口数据写入csv文件: #!/usr/bin/p ...

  2. 基于串口助手的STM32与计算机进行串口通信

    基于串口助手的STM32与计算机进行串口通信 序 言 一. 串口通信概述 二.项目说明 三.实战过程 1)实现stm32向上位机发送字符 2)实现stm32发和收 3)Keil中针对stm32系统进行 ...

  3. c#中文件的写入与读取

    在我们做名片管理时用到了对于名片的存储与读入问题.首先我们需要获取当前的路径引用using System.IO;命名空间.我们在写入之前先把card类型的一条记录转化成string类型的数组方便写入. ...

  4. 串口屏与6050_MPU6050温度值的读取与转换及串口通信,请指导

    MPU6050温度值的读取与转换及串口通信,请指导 [复制链接] 想读取6050的温度,并在上位机PC上的串口助手显示,可是串口上显示的全是乱码方块,代码如下: #include #include t ...

  5. python树莓派串口通信实例_Python实现树莓派USB串口通讯及云端对接

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  6. 树莓派python串口中文输出_Python实现树莓派USB串口通讯

    → USB串口通讯 树莓派上自带一个串口,用于连接蓝牙或是串口命令行,串口资源很少,对于嵌入式的应用来说串口设备很多,需要的串口数量也很多,因为通过USB外接串口是一个不错的选择. 1. 我手中的US ...

  7. android 串口一直打开_实例 | 使用Python串口实时显示数据并绘图

    今天为大家分享一篇使用Python串口实时显示数据并绘图的例子,具有很好的参考价值,希望对大家有所帮助. 一.安装pyserial以及基本用法 使用pyserial进行串口传输,在cmd下输入命令pi ...

  8. rxtx串口事件不触发_一种串口高效收发思路及方案

    摘要:本文在探讨传统数据收发不足之后,介绍如何使用带FIFO的串口来减少接收中断次数,通过一种自定义通讯协议格式,给出帧打包方法:之后介绍一种特殊的串口数据发送方法,可在避免使用串口发送中断的情况下, ...

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

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

  10. FPGA 串口中断_一个严谨的STM32串口DMA发送amp;接收(1.5Mbps波特率)机制

    昨天分享的<嵌入式大杂烩读者福利:第一期>大家有去抽奖吗,没抽的可参与抽奖,碰碰运气.我最喜欢抽奖了,还记得前几个月疫情严重时期连抽中了3包口罩,真刺激,哈哈.之后多多安排抽奖,敬请期待. ...

最新文章

  1. linux系统编码修改
  2. 【struts2+hibernate+spring项目实战】实现用户登录功能(ssh)
  3. Winsock Error Codes
  4. 洛谷 P1506 拯救oibh总部-dfs染色法
  5. wireshark tcp抓包分析_网络分析系列之八_使用Wireshark抓包
  6. cxf restful_使用Apache CXF开发RESTful服务
  7. 小程序 WXS响应事件(滚动菜单栏tab吸顶)
  8. 不要再危言耸听!家用电脑辐射全揭秘
  9. 中国移动通信研究院笔试题2
  10. 超全面超详细的Linux学习入门系列教程
  11. SD卡容量变小恢复方法
  12. 不是有效的win32应用程序
  13. 如何在VMware虚拟机中查看Linux的IP地址
  14. flask android app socketio加解密 匿名加密聊天室 不被任何官方非官方机构个人监视的匿名聊天室!!! 想聊什么就聊什么!
  15. java多线程设计模式详解
  16. Ubuntu 22.04 LTS root登录、修改当前用户名和主机名
  17. oracle锁矩阵,你有多了解Oracle Enqueue lock队列锁机制?
  18. 智能家居论文文献_智能家居控制系统界面设计结论与参考文献
  19. 四、Pinia 的安装及其基本使用
  20. 视觉追踪热图帮Instagram被吐槽新l

热门文章

  1. 算法:翻转整数7. Reverse Integer
  2. Json转换为Model,Struct,Class对象 Swift
  3. 算法:Path Sum(路径总和)
  4. UVAOJ1586题解
  5. Network Delay Time
  6. 【2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16) A】The game of Osho【SG函数+找规律】
  7. 降维系列之 LLE 局部线性嵌入
  8. Raki的读paper小记:An Effective Transition-based Model for Discontinuous NER
  9. 667.优美的数列II(力扣leetcode) 博主可答疑该问题
  10. mysql 升级 乱码_mysql3升级到mysql5解决乱码心得