【[转]C#串口通信 SerialPort类】教程文章相关的互联网学习教程文章

C# 获得串口句柄,供 Win32 API 使用

C# 获得串口句柄,供 Win32 API 使用 废话不表,直接看代码 public static IntPtr GetCommHandle(System.IO.Ports.SerialPort sp){//获得串口句柄,供 Win32 API 使用 IntPtr hComm = IntPtr.Zero; if(sp != null) { object stream = typeof(System.IO.Ports.SerialPort).GetField("internalSerialStream", System.Reflection.BindingFlags.NonPublic | System.Reflection.Binding...

C#中显现串口通信SerialPort类

C#中显现串口通信SerialPort类 SerialPort类的常用属性 | 名  称 | 说  明 说  明 | BaseStream | 获取 SerialPort 对象的基础 Stream 对象 获取 SerialPort 对象的基础 Stream 对象 | BaudRate | 获取或设置串行波特率 获取或设置串行波特率 | BreakState | 获取或设置中断信号状态 获取或设置中断信号状态 | BytesToRead | 获取接收缓冲区中数据的字节数 获取接收缓冲区中数据的字节数 | BytesToWrite ...

c#串口编程(转)【代码】【图】

在单片机项目开发中,上位机也是一个很重要的部分,主要用于数据显示(波形、温度等)、用户控制(LED,继电器等),下位机(单片机)与 上位机之间要进行数据通信的两种方式都是基于串口的:USB转串口 —— 上位机和下位机通过USB转串口连接线直接相连进行数据交互; 串口转WIFI(ESP8266) —— 上位机和下位机基于TCP/IP协议通过WIFI传输数据; 串口转蓝牙(HC-06)—— 不多用,暂不介绍;上位机软软件开发主要包括以下两种:...

C#(99):串口编程 System.IO.Ports.SerialPort类【代码】

从Microsoft .Net 2.0版本以后,就默认提供了System.IO.Ports.SerialPort类,用户可以非常简单地编写少量代码就完成串口的信息收发程序。本文将介绍如何在PC端用C# .Net 来开发串口应用程序。1. 串口硬件信号定义DB9 Connector 信号定义。串口测试将2、3针脚短接即可。2、 串口端口号搜索string[] portList = System.IO.Ports.SerialPort.GetPortNames(); for (int i = 0; i < portList.Length; i++) {string name = portList[i];c...

C# 丢弃串口缓冲区 Serialport.DiscardInBuffer,DiscardOutBuffer

1)MSDN的解释: DiscardInBuffer:丢弃抄来自串行驱动程序的接收缓冲区的数据; DiscardOutBuffer:丢弃来自串行驱动程序的传输缓冲区的数据; 2)在上述解释中“串行驱动程序的接收/发送缓冲区”袭,示意图如下:驱动程序内部维护的两个缓冲区(绿色的)就是“串行驱动程序的接收/发送缓冲区”。应用程序发知送的数据,首先到达驱动程序内部的接收缓冲区,然道后再由驱动程序交给硬件发送;硬件接收的数据,首先由驱动程序接收到...

C# 串口关闭时主界面卡死原因分析

原文:C# 串口关闭时主界面卡死原因分析 问题描述 前几天用SerialPort类写一个串口的测试程序,关闭串口的时候会让界面卡死。 参考博客windows程序界面卡死的原因,得出界面卡死原因:主线程和其他的线程由于资源或者锁争夺,出现了死锁。 参考知乎文章WinForm界面假死,如何判断其卡在代码中的哪一步?,通过点击调试暂停,查看ui线程函数栈,直接定位阻塞代码的行数,确定问题出现在SerialPort类的Close()方法。 参考文章C# 串口操...

C#编程之串口(三)补充【代码】

这里补充一下上一章的内容,上一章我们将发送和接收的编辑框每收到一包数据后自动回车换行,并让滚动条处于最底部位置。 我们调用了 TextBoxBase.ScrollToEnd(); 方法类来实现。 但是我们很容易就会发现,当焦点处于编辑框时,这个功能就会失常了。为了解决这个问题,我们只能暂时用强行聚焦的方式解决这个问题:1 m_textBox1.ScrollToEnd(); 2 m_textBox2.ScrollToEnd(); 3 ...

c#串口扫码枪输入【代码】

串口扫码枪读取主要代码段 1 public partial class Form1 : Form2 {3 public Form1()4 {5 InitializeComponent();6 }7 SerialPort sp = new SerialPort("COM1", 115200, Parity.None, 8, StopBits.One);8 9 delegate void UpdateTextEventHandler(string text); 10 UpdateTextEventHandler updateText; 11 12 private void Form1_Load(object sender, ...

C#串口关闭SerialPort.Close()导致的卡死【代码】

https://blog.csdn.net/fengda2870/article/details/51554838上面的链接给出了提示: 将Invoke变为BeginInvoke。 亲测可行。 private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e){if (this.InvokeRequired){this.BeginInvoke(new DataReceived(SerialPort_DataReceived), sender, e); //DataReceived为代理类型return;}if (!SerialPortRuning){SerialPortRuning = true;try{// 接收串口...

C# 读取串口设备列表【代码】

ManagementObjectSearcher 解析不到头文件,需要手动 Add Referance 需要添加引用:System.Management,然后引入命名空间:using System.Management; 以下是读取串口设备列表 /// <summary>/// 枚举win32 api/// </summary>private enum HardwareEnum{// 硬件Win32_Processor, // CPU 处理器Win32_PhysicalMemory, // 物理内存条Win32_Keyboard, // 键盘Win32_PointingDevice, // 点输入设备,包括鼠标。Win32_FloppyDrive,...

C#:蓝牙串口读数据和写数据【代码】

原文:C#:蓝牙串口读数据和写数据  首次使用C#编写与COM口有关的程序,期间遇到了很多问题,写下自己的经验总结,如有错漏,欢迎批评指正! 1、新建一个串口类(nbsp;SerialPort类)1 //Create a serial port for bluetooth 2 SerialPort BluetoothConnection = new SerialPort();2、串口端口号搜索:string[] Ports = SerialPort.GetPortNames();or (int i = 0; i lt; Ports.Length; i++){nbsp;nbsp;nbsp; string name = Ports[...

c# – 从串口读取并显示结果【代码】

这是我到目前为止提出的代码:protected void Page_Load(object sender, EventArgs e) {try {serialPort1.PortName = "COM4";serialPort1.BaudRate = 9600;serialPort1.Open();this.serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(this.serialPort1_DataReceived);Label1.Text = "Connected";UpdatePanel1.Update();}catch (Exception ex) {} }string x = ""; private void serialPort1_Da...

c# – 串口重定向或拆分

我正在寻找一本关于如何进行串口重定向或端口拆分的书籍或代码示例.我编写了很多com端口应用程序,并希望编写一个监视器应用程序,以便我可以看到应用程序和设备之间的串行端口. 所以我希望能够将串口重定向到另一个端口,这样我就可以监控端口之间的数据流. 我理解在某些情况下,这必须在内核级别完成. (在USB情况下) 我在C#中使用system.IO.Ports编写了监视器应用程序.如果我必须调用一个很好的C/C++程序集. 谢谢 乔解决方法:您可能会...

c# – 当我尝试打开串口时,为什么会出现“CreateFile Failed:161”?【代码】

我在serialPort.Open()行上得到“CreateFile Failed:161”:. . .MessageBox.Show(string.Format("Made it into PrintUtils.PrintBarcode()")); using (SerialPort serialPort = new SerialPort()) {MessageBox.Show("Made it into using statement in PrintUtils.PrintBarcode()"); serialPort.BaudRate = 19200;serialPort.Handshake = Handshake.XOnXOff;serialPort.DataBits = 8;serialPort.Parity = Parity.None;serialPort....

在C#中管理串口

有谁知道在c#中控制串口的最简单方法(例如设置波特率,数据位,停止位,以字节为单位读取入站消息,以字节为单位推送出站消息等)?我可以使用哪些现成的课程吗?解决方法:您可以使用System.IO.SerialPort课程完成所有这些操作. (只要您使用> NET 2.0或更高版本.)