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

server/2025/3/6 18:09:28/

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/server/172935.html

相关文章

vscode 配置debug的环境

vscode配置debug的环境 配置好python解释器&#xff0c; ctrl shift P 就可以指定python了。 当前环境下建立 .vscode 文件夹新建 .vscode/launch.json 文件文件的配置如下 {"version": "0.2.0","configurations": [{"name": &qu…

Git安装部署

1、下载Git安装包 官网地址&#xff1a;https://git-scm.com/ &#xff0c;选择你所需要的git安装包 2、安装GIT 除了安装路径外&#xff0c;保持默认&#xff0c;一路next。 3、检查是否安装成功 WinR cmd&#xff0c;打开命令提示符&#xff0c;输入git --version&#xf…

每日学习Java之一万个为什么?[MySQL面试篇]

分析SQL语句执行流程中遇到的问题 前言1 MySQL是怎么在一台服务器上启动的2 MySQL主库和从库是同时启动保持Alive的吗&#xff1f;3 如果不是主从怎么在启动的时候保证数据一致性4 ACID原则在MySQL上的体现5 数据在MySQL是通过什么DTO实现的6 客户端怎么与MySQL Server建立连接…

css画出带圆角平行四边形效果

使用css画出平行四边形效果如下图 HTML代码 <div class"badge"><span>营业中</span> </div> 关键代码&#xff1a; transform: skewX(-15deg); /* 让元素倾斜&#xff0c;形成平行四边形的视觉效果 */ 如果倾斜的元素里面需要放文字&…

stm32主从机硬件IIC实现

前言&#xff1a; IIC作为一个基础的通信协议&#xff0c;活跃于各种设备之间。I2C作为两线通信协议&#xff0c;相较于spi来说所需引脚更少&#xff0c;我们可以使用硬件I2C在设备与设备之间通信&#xff0c;但在硬件I2c被其他功能所占据引脚时&#xff0c;也可以使用软件拉高…

鸿蒙NEXT开发-端云一体化开发

注意&#xff1a;博主有个鸿蒙专栏&#xff0c;里面从上到下有关于鸿蒙next的教学文档&#xff0c;大家感兴趣可以学习下 如果大家觉得博主文章写的好的话&#xff0c;可以点下关注&#xff0c;博主会一直更新鸿蒙next相关知识 目录 端云一体化开发基本概念 传统架构 端云一…

Linux:文件系统的初步认识

目录 一、文件的初步理解 ​广义的文件 ​狭义的文件 ​文件为什么有"内容属性" 为什么说"所有操作都是IO" 二、C语言中的文件接口 三、系统调用的文件接口 位图的理解 open函数接口 四、文件和进程的关系 五、linux下一切皆文件 一、文件的初步…

K8S学习之基础六:k8s中pod亲和性

Pod节点亲和性和反亲和性 podaffinity&#xff1a;pod节点亲和性指的是pod会被调度到更趋近与哪个pod或哪类pod。 podunaffinity&#xff1a;pod节点反亲和性指的是pod会被调度到远离哪个pod或哪类pod 1. Pod节点亲和性 requiredDuringSchedulingIgnoredDuringExecution&am…