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

【源码开源】C#桌面应用开发:串口调试助手

c#桌面应用开发

1、环境搭建和工程创建:参照番茄定时器项目

工程创建参照

2、界面布局设计

在这里插入图片描述

3、具体功能函数

(1)端口扫描:
    private void btn_com_scan_Click(object sender, EventArgs e){//端口号扫描ReflashPortToComboBox(serialPort1, cb_select_com);}
(2)初始化界面数据设置
    private void Form1_Load(object sender, EventArgs e){//第一次加载的时候,进行端口号扫描ReflashPortToComboBox(serialPort1, cb_select_com);cb_select_com.SelectedItem = "COM1";cb_select_baudrate.SelectedItem = "115200";cb_select_data_bits.SelectedItem = "8";cb_select_check_bit.SelectedItem = "None";cb_select_stop_bit.SelectedItem = "1";btn_open_com.Enabled = true;btn_close_com.Enabled = false;//默认使用 ascii模式rbtn_recv_ascii.Checked = true;rbtn_send_ascii.Checked = true;}
(3)串口接收:
 private void ReceiveData(object sender, SerialDataReceivedEventArgs e){string content = serialPort1.ReadExisting();        //从串口中读取输入流,返回stringShowData(content);}private void ShowData(string text){string receiveText = text;//更新接收数据计数recv_cntr += (UInt32)receiveText.Length;lab_recv_cntr.Text = recv_cntr.ToString();textBox_debug.AppendText("接收到了"+ receiveText.Length.ToString()+ "个数据: "+ text+"\r\n");if (rbtn_recv_hex.Checked){//按HEX模式 展示接收到的内容 byte[] recData = System.Text.Encoding.Default.GetBytes(receiveText);// 将接受到的字符串据转化成数组;  foreach (byte str in recData){textBox_recv.AppendText(string.Format("{0:X2} ", str));}}else{//按ASCII模式 展示接收到的内容textBox_recv.AppendText(text);                   //将收到的字符串追加展示出来}}
(4)按钮事件:
private void btn_open_com_Click(object sender, EventArgs e)
{Int32 ibaudrate = Convert.ToInt32(cb_select_baudrate.SelectedItem.ToString());serialPort1.PortName = cb_select_com.SelectedItem.ToString();serialPort1.BaudRate = ibaudrate;serialPort1.Parity = (System.IO.Ports.Parity)Enum.Parse(typeof(System.IO.Ports.Parity), cb_select_check_bit.Text);serialPort1.StopBits = (System.IO.Ports.StopBits)Enum.Parse(typeof(System.IO.Ports.StopBits), cb_select_stop_bit.Text);serialPort1.DataBits = Convert.ToInt16(cb_select_data_bits.Text);//添加串口事件处理serialPort1.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(ReceiveData);try{serialPort1.Open();btn_open_com.Enabled = false;btn_close_com.Enabled = true;}catch (Exception ex){MessageBox.Show("串口打开失败"+ex, "Error");}

4、完整工程代码开源

源码打包上传在CSDN,本意是不需要使用积分免费下载,如果下载时遇到收积分,联系我私发即可

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JS爬虫实战之极验四代
  • C# Winform之propertyGrid控件使用详解和分组设置
  • 这个软件可无限制免费领取金币,领取后即可自由实现AI文生图,AI Chat及其AI文生PPT等AI功能
  • 一文带你掌握SpringMVC扩展点RequestBodyAdvice和ResponseBodyAdvice如何使用及实现原理
  • 【基础算法总结】链表
  • 力扣 202快乐数
  • Ollama + Openwebui 本地部署大型模型与交互式可视化聊天
  • 电气设计规范
  • 力扣面试经典150题
  • 借助软件资产管理系统,优化Solidworks软件许可证管理
  • ArduPilot开源飞控之AP_Mount_Backend_Serial
  • 谈一谈徒劳的坐地收益的副业问题
  • HTTP 请求走私漏洞详解
  • windows环境下基于3DSlicer 源代码编译搭建工程开发环境详细操作过程和中间关键错误解决方法说明
  • 软链接node_modules
  • python3.6+scrapy+mysql 爬虫实战
  • 【面试系列】之二:关于js原型
  • C++入门教程(10):for 语句
  • classpath对获取配置文件的影响
  • Lucene解析 - 基本概念
  • PermissionScope Swift4 兼容问题
  • Ruby 2.x 源代码分析:扩展 概述
  • spring security oauth2 password授权模式
  • Vue.js源码(2):初探List Rendering
  • yii2权限控制rbac之rule详细讲解
  • 阿里云应用高可用服务公测发布
  • 从零开始学习部署
  • 基于axios的vue插件,让http请求更简单
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 技术发展面试
  • 简单易用的leetcode开发测试工具(npm)
  • 聚类分析——Kmeans
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 马上搞懂 GeoJSON
  • 删除表内多余的重复数据
  • 算法-图和图算法
  • #pragma预处理命令
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (27)4.8 习题课
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (SERIES12)DM性能优化
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (七)Appdesigner-初步入门及常用组件的使用方法说明
  • (一) storm的集群安装与配置
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (一)Neo4j下载安装以及初次使用
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)负载均衡,回话保持,cookie
  • (轉)JSON.stringify 语法实例讲解
  • ***监测系统的构建(chkrootkit )