第六节:基于Winform框架的串口助手小项目---收发数据《C#编程》

ops/2025/3/6 10:33:47/

1.目标:实现数据的收发

2.代码演示

根据控件编程

(1)接收配置

自动清空

private void autoclear_chb_CheckedChanged(object sender, EventArgs e)
{if (autoclear_chb.Checked){timer1.Start();}else{timer1.Stop();}
}

手动清空

 private void Manual_clear_btn_Click(object sender, EventArgs e){reciveBuffer.Clear();Receive_count_tssl.Text = "";Receive_rtb.Text = "";}

十六进制

private void Receive_Hex_chb_CheckedChanged(object sender, EventArgs e)
{if (Receive_rtb.Text == "") return;if (Receive_Hex_chb.Checked){Receive_rtb.Text = Transform.ToHexString(reciveBuffer.ToArray(), " ");}else{Receive_rtb.Text = Encoding.GetEncoding("gb2312").GetString(reciveBuffer.ToArray()).Replace("\0", "\\0");}
}

暂停

private void Receive_Stop_btn_Click(object sender, EventArgs e)
{if (isRxShow == true){isRxShow = false;Receive_Stop_btn.Text = "取消暂停";}else{isRxShow = true;Receive_Stop_btn.Text = "暂停";}
}

(2)发送配置

自动发送

private void autosend_chb_CheckedChanged(object sender, EventArgs e)
{// 串口未打开if(serialPort1.IsOpen==false && autosend_chb.CheckState == CheckState.Checked){autosend_chb.CheckState = CheckState.Unchecked;if(timer2!=null){timer2.Enabled = false;timer2.Stop();// timer2 = null;}MessageBox.Show("发送失败,串口未打卡");return;}// 串口打开if (serialPort1.IsOpen == true && autosend_chb.CheckState == CheckState.Checked){autotimer_txb.Enabled = false;send_btn.Enabled = false;int i = Convert.ToInt32(autotimer_txb.Text);if (i < 10 || i>60*1000){i = 1000;autotimer_txb.Text = "1000";MessageBox.Show("自动发送数据的周期范围是10-60000毫秒", "警告");}timer2.Interval = i;timer2.Start();}else{send_btn.Enabled = true;autotimer_txb.Enabled = true;if(timer2!=null){timer2.Stop();//timer2 = null;}}}

手动发送

private void Manual_Send_btn_Click(object sender, EventArgs e)
{// 如果发送的数据不为空,则接收if (this.Send_rtb.Text != "" && serialPort1.IsOpen){Console.WriteLine(Transform.ToHexString(sendBuffer.ToArray()));sendData();}else{MessageBox.Show("请先输入发送数据!");}}

十六进制

 private void Send_Hex_chb_CheckedChanged(object sender, EventArgs e){if(Send_rtb.Text == "") return;if (Send_Hex_chb.Checked == true){Send_rtb.Text = Transform.ToHexString(sendBuffer.ToArray(), " ");}else{Send_rtb.Text = Encoding.GetEncoding("gb2312").GetString(sendBuffer.ToArray()).Replace("\0", "\\0");}}

清空发送

 private void Send_clear_btn_Click(object sender, EventArgs e){sendBuffer.Clear();Send_rtb.Text = "";sendCount = 0;Receive_count_tssl.Text = "0";}

3.效果展示

代码看不懂,去Deepseek

待续》》》


http://www.ppmy.cn/ops/163577.html

相关文章

【每日学点HarmonyOS Next知识】web网络拦截、对话框、网页重定向、数据作用域、多线程

【每日学点HarmonyOS Next知识】web网络拦截、对话框、网页重定向、数据作用域、多线程 1、HarmonyOS 在web网络拦截情况下&#xff0c;在网络失败情况下&#xff0c;web组件的onErrorReceive和onHttpErrorReceive均未回调&#xff1f; 在网络拦截情况下&#xff0c;在网络失…

【AI深度学习基础】Pandas完全指南终极篇:构建企业级数据工程与AI应用 (含完整代码)

&#x1f4da; Pandas 系列文章导航 入门篇 &#x1f331;进阶篇 &#x1f680;终极篇 &#x1f30c; &#x1f30c; 前言 通过前两篇的学习&#xff0c;我们已掌握 Pandas 的核心操作与高阶技巧。本篇将突破工具边界&#xff0c;探索 生产级数据工程架构设计、亿级数据处理方…

GradientDrawable自定义视图设计

简介 GradientDrawable用于定义具有渐变颜色的图形。作为 Drawable 的一种&#xff0c;GradientDrawable 可以用来设置视图&#xff08;如 View、Button、TextView 的背景&#xff09;的形状、大小、颜色以及边框等属性。它的灵活性使得开发者能够在不依赖外部图片资源的情况下…

用于管理 Elasticsearch Serverless 项目的 AI Agent

作者&#xff1a;来自 Elastic Fram Souza 由自然语言驱动的 AI 代理&#xff0c;可轻松管理 Elasticsearch Serverless 项目 - 支持项目创建、删除和状态检查。 这个小型命令行工具让你可以用简单的英语管理你的无服务器 Elasticsearch 项目。它通过AI&#xff08;这里是 Ope…

如何将飞书多维表格与DeepSeek R1结合使用:效率提升的完美搭档

将飞书的多维表格与DeepSeek R1结合使用&#xff0c;就像为你的数据管理和分析之旅装上一台涡轮增压器。两者的合作&#xff0c;不仅仅在速度上让人耳目一新&#xff0c;更是将智能化分析带入了日常的工作场景。以下是它们如何相辅相成并改变我们工作方式的一些分享。 --- 在…

Diffusion模型中时间t嵌入的方法

Diffusion模型中时间t嵌入的方法 class PositionalEmbedding(nn.Module):def __init__(self, dim, scale1.0):super().__init__()assert dim % 2 0self.dim dimself.scale scaledef forward(self, x):device x.devicehalf_dim self.dim // 2emb math.log(10000) / half_…

FastGPT 源码:混合检索调用链路

文章目录 FastGPT 源码&#xff1a;混合检索调用链路1. 入口函数2. 核心搜索函数3. RRF合并函数4. Rerank重排序函数5. 完整流程 FastGPT 源码&#xff1a;混合检索调用链路 主要调用链路如下&#xff1a; 1. 入口函数 在 dispatchDatasetSearch&#xff08;packages/servic…

Mac OS升级后变慢了,如何恢复老系统?

我的一台Mac Air闲置很久了&#xff0c;原因是某次系统升级后用着会卡&#xff0c;有差不多10年没用了。今天想试着恢复一下出厂系统&#xff0c;目前看这条路可以走通。记录如下&#xff1a; 1、去哪里下载旧版系统&#xff1f; https://support.apple.com/zh-cn/102662 2、…