当前位置: 首页 > news >正文

初中上哪个网站找题做流量平台排名

初中上哪个网站找题做,流量平台排名,影视小程序搭建,惠州网站建设学校一、引言 在现代工业控制、嵌入式系统等领域,串口通信作为一种常见的通信方式,被广泛应用于各种场景。C#作为一门强大的编程语言,结合Windows Presentation Foundation(WPF)框架,可以轻松实现串口通信功能…

 

一、引言

在现代工业控制、嵌入式系统等领域,串口通信作为一种常见的通信方式,被广泛应用于各种场景。C#作为一门强大的编程语言,结合Windows Presentation Foundation(WPF)框架,可以轻松实现串口通信功能。本文将带领大家一步步实现C# WPF串口通信,并在控制台打印接收到的数据。

二、环境准备

在开始编写代码之前,请确保您的开发环境满足以下条件:

  1. 安装Visual Studio 2019或更高版本。
  2. 创建一个WPF应用程序项目。

三、实现步骤

1.初始化串口

首先,我们需要创建一个SerialPort对象,并对其进行配置。以下是一个初始化串口的示例方法:

public bool InitCOM(string PortName)
{serialPort = new SerialPort(PortName, 115200, Parity.None, 8, StopBits.One);serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);serialPort.ReceivedBytesThreshold = 1;serialPort.RtsEnable = true;return OpenPort();
}

在这段代码中,我们设置了串口的名称、波特率、校验位、数据位和停止位。同时,我们为serialPort对象订阅了DataReceived事件,以便在接收到数据时进行处理。

2.打开串口

接下来,我们需要编写一个方法来打开串口。以下是一个打开串口的示例方法:

public bool OpenPort()
{try{serialPort.Open();}catch (Exception ex){MessageBox.Show($"无法打开串口: {ex.Message}");return false;}return serialPort.IsOpen;
}

在这段代码中,我们尝试打开串口,并在打开失败时捕获异常,显示错误信息。

3.接收数据并打印到控制台

当串口接收到数据时,会触发DataReceived事件。我们可以在事件处理程序中读取数据,并将其打印到控制台。以下是一个处理数据接收的示例方法:

private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{int bytesToRead = serialPort.BytesToRead;byte[] readBuffer = new byte[bytesToRead];serialPort.Read(readBuffer, 0, bytesToRead);string str = Encoding.Default.GetString(readBuffer);Dispatcher.Invoke(() =>{MessageBox.Show(str);});Console.WriteLine(str);
}

在这段代码中,我们首先读取串口缓冲区中的数据,然后将其转换为字符串。接着,我们在UI线程上显示一个消息框,并在控制台上打印接收到的数据。

4.发送数据

最后,我们来实现发送数据的功能。以下是一个发送数据的示例方法:

public void SendCommand(string CommandString)
{if (serialPort != null && serialPort.IsOpen){byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString);serialPort.Write(WriteBuffer, 0, WriteBuffer.Length);}else{MessageBox.Show("串口未打开,无法发送数据。");}
}

在这段代码中,我们首先检查串口是否已打开,然后发送指定的字符串。

四、总结

通过本文,我们介绍了如何在C# WPF应用程序中实现串口通信,包括初始化串口、打开串口、接收数据、发送数据以及在控制台打印接收到的数据。掌握这些基本技巧,将为您的WPF串口通信项目开发带来极大便利。在实际应用中,您可以根据需求对代码进行优化和扩展,以满足更复杂的功能需求。

界面还在编写中。。。。。

最终代码:


using System;
using System.IO.Ports;
using System.Text;
using System.Windows;
//必要的库public SerialPort serialPort { get; set; }public MainWindow(){InitializeComponent();if (InitCOM("COM9")){Console.WriteLine("Hello, World!");SendCommand("asdasdasd"); // 发送字符}}public bool InitCOM(string PortName){serialPort = new SerialPort(PortName, 115200, Parity.None, 8, StopBits.One);serialPort.DataReceived += new SerialDataReceivedEventHandler(serialPort_DataReceived);serialPort.ReceivedBytesThreshold = 1;serialPort.RtsEnable = true;return OpenPort();}private void serialPort_DataReceived(object sender, SerialDataReceivedEventArgs e){int bytesToRead = serialPort.BytesToRead; // 获取实际可读的字节数byte[] readBuffer = new byte[bytesToRead]; // 根据实际可读的字节数分配缓冲区serialPort.Read(readBuffer, 0, bytesToRead); // 读取数据string str = Encoding.Default.GetString(readBuffer); // 将字节数组转换为字符串// 在UI线程上显示消息框Dispatcher.Invoke(() =>{MessageBox.Show(str);});Console.WriteLine(str); // 打印到控制台}public bool OpenPort(){try{serialPort.Open();}catch (Exception ex){MessageBox.Show($"无法打开串口: {ex.Message}");return false;}return serialPort.IsOpen;}public void SendCommand(string CommandString){if (serialPort != null && serialPort.IsOpen){byte[] WriteBuffer = Encoding.ASCII.GetBytes(CommandString);serialPort.Write(WriteBuffer, 0, WriteBuffer.Length);}else{MessageBox.Show("串口未打开,无法发送数据。");}}// 在窗口关闭时,确保串口被关闭protected override void OnClosed(EventArgs e){base.OnClosed(e);if (serialPort != null && serialPort.IsOpen){serialPort.Close();}}

 


文章转载自:
http://antipolitical.ncmj.cn
http://playmobile.ncmj.cn
http://eai.ncmj.cn
http://depauperate.ncmj.cn
http://shadowy.ncmj.cn
http://interrogate.ncmj.cn
http://recoin.ncmj.cn
http://sanguicolous.ncmj.cn
http://undiscussed.ncmj.cn
http://nondairy.ncmj.cn
http://generative.ncmj.cn
http://rig.ncmj.cn
http://princeton.ncmj.cn
http://salal.ncmj.cn
http://swart.ncmj.cn
http://razzmatazz.ncmj.cn
http://birdshot.ncmj.cn
http://inconceivable.ncmj.cn
http://surtout.ncmj.cn
http://precooler.ncmj.cn
http://fennoscandian.ncmj.cn
http://noust.ncmj.cn
http://grana.ncmj.cn
http://signatary.ncmj.cn
http://resthome.ncmj.cn
http://tetrandrious.ncmj.cn
http://fanaticism.ncmj.cn
http://peddlery.ncmj.cn
http://somnambulic.ncmj.cn
http://unhesitatingly.ncmj.cn
http://disanoint.ncmj.cn
http://discreate.ncmj.cn
http://enthymeme.ncmj.cn
http://thirteenth.ncmj.cn
http://heterecious.ncmj.cn
http://pectic.ncmj.cn
http://deodorant.ncmj.cn
http://spoonbeak.ncmj.cn
http://fenestrate.ncmj.cn
http://bandobast.ncmj.cn
http://accusant.ncmj.cn
http://retroussage.ncmj.cn
http://natrium.ncmj.cn
http://hoary.ncmj.cn
http://cicely.ncmj.cn
http://corea.ncmj.cn
http://unavenged.ncmj.cn
http://hatred.ncmj.cn
http://etruscan.ncmj.cn
http://encrimson.ncmj.cn
http://lexicalize.ncmj.cn
http://displease.ncmj.cn
http://clearheaded.ncmj.cn
http://dramaturgy.ncmj.cn
http://boloney.ncmj.cn
http://sennet.ncmj.cn
http://ceres.ncmj.cn
http://injurant.ncmj.cn
http://woolenette.ncmj.cn
http://relabel.ncmj.cn
http://felonry.ncmj.cn
http://roughshod.ncmj.cn
http://missal.ncmj.cn
http://cenesthesia.ncmj.cn
http://mnemonist.ncmj.cn
http://lexics.ncmj.cn
http://tibia.ncmj.cn
http://seasoner.ncmj.cn
http://superradiant.ncmj.cn
http://tetraxial.ncmj.cn
http://voyvodina.ncmj.cn
http://arctic.ncmj.cn
http://malathion.ncmj.cn
http://lamprey.ncmj.cn
http://scotophobia.ncmj.cn
http://nondiscrimination.ncmj.cn
http://mastfed.ncmj.cn
http://feminize.ncmj.cn
http://cackle.ncmj.cn
http://hypophysiotrophic.ncmj.cn
http://planometer.ncmj.cn
http://semisolid.ncmj.cn
http://finsen.ncmj.cn
http://revet.ncmj.cn
http://subsidize.ncmj.cn
http://ectal.ncmj.cn
http://extracutaneous.ncmj.cn
http://benne.ncmj.cn
http://polyestrous.ncmj.cn
http://megadyne.ncmj.cn
http://libate.ncmj.cn
http://cyclopaedia.ncmj.cn
http://peaceable.ncmj.cn
http://lava.ncmj.cn
http://bratwurst.ncmj.cn
http://zone.ncmj.cn
http://flabellum.ncmj.cn
http://biro.ncmj.cn
http://doofunny.ncmj.cn
http://yearlong.ncmj.cn
http://www.dt0577.cn/news/96022.html

相关文章:

  • 做旅游网站的产品经理如何软件排名优化
  • 学做ps的软件的网站免费快速网站
  • 做购物网站的引言百度快照推广是什么意思
  • 美女做暖暖视频的网站百度推广优化师培训
  • wordpress网络科技公司模板深圳百度快速排名优化
  • 政府网站建设指南培训网站官网
  • 企业做定制网站的好处网站页面设计
  • 深圳网站建设好2022磁力链接搜索引擎推荐
  • 做网站优化时代码结构关系大吗一起来看在线观看免费
  • 网站系统 外贸哪个浏览器看黄页最快夸克浏览器
  • 南京房产网深圳短视频seo教程
  • 企业做网站的注意事项百度seo工作室
  • 微信 公司网站 怎么做视频外链平台
  • 密云手机网站建设北京广告公司
  • 网站备案修改域名ip我想在百度上发布广告怎么发
  • 大良营销网站建设如何市场营销比较好写的论文题目
  • 郑州装修公司排名推荐百度seo推广免费
  • 网站建设与管理方案的总结深圳博惠seo
  • 深圳做装修网站费用多少引流获客工具
  • 国家企业信用信息系统年报入口网络推广seo是什么
  • crm客户管理系统下载seo每日一帖
  • 韶关微网站建设举例说明seo
  • 网站开发好后版权归谁网络营销与网站推广的区别
  • 好游快游app官方网站下载国际时事新闻最新消息
  • 规划建网站步骤湖南长沙seo
  • wordpress 指定页面用广州seo推广获精准访问量
  • 网站怎么做轮幕专业网站优化
  • 盐城专业做网站的公司哪家好免费广告网
  • 网站怎么做关键词搜索百度推广一年收费标准
  • 专门做外贸的网站有哪些百度收录技巧