用C#编写一个串口助手接收温湿度、烟雾浓度传感器数据(cc2530)

本文主要是介绍用C#编写一个串口助手接收温湿度、烟雾浓度传感器数据(cc2530),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

C#做一个串口调试助手

新建工程

选择visual c#---->窗体应用程序

界面设计:拖拽一个textbox(文本框)控件、两个label(标签)控件、三个button(按钮)控件、两个combobox(组合框)控件。选中combobox(组合框)控件在右下方属性中找到items点开集合输入你的波特率数值。

修改label、button属性中的Text,输入你想要的内容,调整Textbox。

 

获取电脑上的串口号需要用到serialPort控件,直接从工具箱中拖拽过来。

.界面都做好后就开始敲代码了

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;//头文件namespace WindowsFormsApp1
{public partial class Form1 : Form{public Form1(){InitializeComponent();CheckForIllegalCrossThreadCalls = false;serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);serialPort1.Encoding = Encoding.GetEncoding("GB2312");System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;}/// /数据接收部分private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)//接收函数  SerialDataReceivedEventArgs写错,导致错误,谨记{try{string recive_data;recive_data = serialPort1.ReadExisting();textBox1.AppendText(recive_data);textBox1.AppendText("\r\n");}catch { }}private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){}private void Form1_Load(object sender, EventArgs e){}/// //搜索串口部分private void button1_Click(object sender, EventArgs e){SearchAnAddSerialToComboBox(serialPort1, comboBox1);}private void SearchAnAddSerialToComboBox(SerialPort MyPort, ComboBox MyBox)//搜索串口函数{ //将可用的串口号添加到ComboBoxstring[] NmberOfport = new string[20];//最多容纳20个,太多会卡,影响效率string MidString1;//中间数组,用于缓存MyBox.Items.Clear();//清空combobox的内容for (int i = 1; i < 20; i++){try //核心是靠try和catch 完成遍历{MidString1 = "COM" + i.ToString();  //把串口名字赋给MidString1MyPort.PortName = MidString1;       //把MidString1赋给 MyPort.PortName MyPort.Open();                      //如果失败,后面代码不执行??NmberOfport[i - 1] = MidString1;    //依次把MidString1的字符赋给NmberOfportMyBox.Items.Add(MidString1);        //打开成功,添加到下列列表MyPort.Close();                     //关闭MyBox.Text = NmberOfport[i - 1];    //显示最后扫描成功那个串口}catch { };}}/// 打开串口部分private void button2_Click(object sender, EventArgs e){if (button2.Text == "打开串口")//为0时,表示关闭,此时可以进行打开操作{try{serialPort1.PortName = comboBox1.Text;//获取端口号serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);//设置波特率serialPort1.Open();//打开串口button2.Text = " 关闭串口";}catch{MessageBox.Show("串口打开错误");}}else  //为1时,表示开启,此时可以进行关闭操作{try{serialPort1.Close();//关闭串口button2.Text = "打开串口";//置位为0,表示状态为关闭}catch { }}}/// <summary>/// /清空显示部分/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button3_Click(object sender, EventArgs e){textBox1.Clear();}}
}

以下是程序源码自取

http://链接:https://pan.baidu.com/s/13H5UBFEz_AW8k8Dpzu4BNA?pwd=hxy6  提取码:hxy6

这篇关于用C#编写一个串口助手接收温湿度、烟雾浓度传感器数据(cc2530)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656274

相关文章

大数据spark3.5安装部署之local模式详解

《大数据spark3.5安装部署之local模式详解》本文介绍了如何在本地模式下安装和配置Spark,并展示了如何使用SparkShell进行基本的数据处理操作,同时,还介绍了如何通过Spark-su... 目录下载上传解压配置jdk解压配置环境变量启动查看交互操作命令行提交应用spark,一个数据处理框架

通过ibd文件恢复MySql数据的操作方法

《通过ibd文件恢复MySql数据的操作方法》文章介绍通过.ibd文件恢复MySQL数据的过程,包括知道表结构和不知道表结构两种情况,对于知道表结构的情况,可以直接将.ibd文件复制到新的数据库目录并... 目录第一种情况:知道表结构第二种情况:不知道表结构总结今天干了一件大事,安装1Panel导致原来服务

Jmeter如何向数据库批量插入数据

《Jmeter如何向数据库批量插入数据》:本文主要介绍Jmeter如何向数据库批量插入数据方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Jmeter向数据库批量插入数据Jmeter向mysql数据库中插入数据的入门操作接下来做一下各个元件的配置总结Jmete

SpringBoot接收JSON类型的参数方式

《SpringBoot接收JSON类型的参数方式》:本文主要介绍SpringBoot接收JSON类型的参数方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、jsON二、代码准备三、Apifox操作总结一、JSON在学习前端技术时,我们有讲到过JSON,而在

C# 委托中 Invoke/BeginInvoke/EndInvoke和DynamicInvoke 方法的区别和联系

《C#委托中Invoke/BeginInvoke/EndInvoke和DynamicInvoke方法的区别和联系》在C#中,委托(Delegate)提供了多种调用方式,包括Invoke、Begi... 目录前言一、 Invoke方法1. 定义2. 特点3. 示例代码二、 BeginInvoke 和 EndI

C#中的 Dictionary常用操作

《C#中的Dictionary常用操作》C#中的DictionaryTKey,TValue是用于存储键值对集合的泛型类,允许通过键快速检索值,并且具有唯一键、动态大小和无序集合的特性,常用操作包括添... 目录基本概念Dictionary的基本结构Dictionary的主要特性Dictionary的常用操作

C# winform操作CSV格式文件

《C#winform操作CSV格式文件》这篇文章主要为大家详细介绍了C#在winform中的表格操作CSV格式文件的相关实例,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录实例一实例效果实现代码效果展示实例二实例效果完整代码实例一实例效果当在winform界面中点击读取按钮时 将csv中

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi