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

C# 设计倒计时器、串口助手开发

文章目录

    • 1. 实现一个简单的倒计时器开始、暂停
    • 2. 串口助手开发

1. 实现一个简单的倒计时器开始、暂停

namespace Timer
{public partial class Form1 : Form{int count;//用于定时器计数int time;//存储设定的定时值bool parse = false;//控制暂停计时public Form1(){InitializeComponent();}//窗口创建初始化函数private void Form1_Load(object sender, EventArgs e){//双击窗体后在这里给下拉框添加或者在属性items里添加都可以for(int i = 1; i < 100; i++){comboBox1.Items.Add(i.ToString() + "秒");}comboBox1.Text = "1秒";}private void timer1_Tick(object sender, EventArgs e){count++;//记录、当前秒label3.Text = (time - count).ToString() + "秒";//显示剩余时间progressBar1.Value = count;//设置进度条进度if(count == time){timer1.Stop();//时间到,停止计时System.Media.SystemSounds.Asterisk.Play();//提示音MessageBox.Show("时间到,停止计时","提示");//弹出提示框count = 0;progressBar1.Value = 0;comboBox1.Text = null;}}//开始计时按钮事件private void button1_Click(object sender, EventArgs e){if (parse == true){parse = false;timer1.Stop();return;}string str = comboBox1.Text; //将下拉框内容添加到一个变量中time = Convert.ToInt16(str.Substring(0,str.Length - 1)); //得到设定的定时值progressBar1.Maximum = time;//进度条最大数值parse = true;timer1.Start();//开始计时}}
}

在这里插入图片描述

2. 串口助手开发

创建项目的时候要选带(.NET Framework)的窗体应用

using System;
using System.IO.Ports;
using System.Text;
using System.Windows.Forms;namespace SerialCommunicate
{public partial class Form1 : Form{public Form1(){InitializeComponent();//串口数据接收事件serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);//串口接收编码serialPort1.Encoding = Encoding.GetEncoding("UTF-8");System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;}private void Form1_Load(object sender, EventArgs e){for(int i = 1; i < 20; i++){comboBox1.Items.Add("COM" + i.ToString());}comboBox1.Text = "COM1";comboBox2.Text = "4800";//必须手动添加事件处理器serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);}//串口数据接收事件private void port_DataReceived(object sender, SerialDataReceivedEventArgs e){if (!radioButton3.Checked)//如果为字符模式接收{string str = serialPort1.ReadExisting();//字符串方式读textBox1.AppendText(str);}else//数值接收{//定义缓冲区,因为串口事件触发时不是实时的byte[] data = new byte[serialPort1.BytesToRead];serialPort1.Read(data, 0, data.Length);foreach(byte Member in data){string str = Convert.ToString(Member, 16).ToUpper();//空位补0textBox1.AppendText("0x" + (str.Length == 1 ? "0" + str : str) + " ");}}}private void button1_Click(object sender, EventArgs e){try{serialPort1.PortName = comboBox1.Text;serialPort1.BaudRate = Convert.ToInt32(comboBox2.Text);//十进制数据转换serialPort1.Open();button1.Enabled = false;//打开串口按钮不可用button2.Enabled = true;//关闭串口}catch{MessageBox.Show("端口错误,请检查串口", "错误");}}private void button2_Click(object sender, EventArgs e){try{serialPort1.Close();button1.Enabled = true;button2.Enabled = false;}catch(Exception err)//一般情况下关闭串口不会出错,所以不需要加处理程序{}}private void button3_Click(object sender, EventArgs e){byte[] Data = new byte[1];//判断串口是否打开if (serialPort1.IsOpen){if(textBox2.Text != ""){if (!radioButton1.Checked){try{serialPort1.WriteLine(textBox2.Text);}catch (Exception err){MessageBox.Show("串口数据写入错误", "错误");serialPort1.Close();button1.Enabled = true;button2.Enabled = false;}}else{//取余运算防止用户输入的字符为奇数个for(int i = 0; i < (textBox2.Text.Length - textBox2.Text.Length % 2) / 2; i++){Data[0] = Convert.ToByte(textBox2.Text.Substring(i * 2, 2), 16);serialPort1.Write(Data, 0, 1);}if(textBox2.Text.Length % 2 != 0){Data[0] = Convert.ToByte(textBox2.Text.Substring(textBox2.Text.Length - 1, 1), 16);serialPort1.Write(Data, 0, 1);}}}}}}
}

在这里插入图片描述

相关文章:

C# 设计倒计时器、串口助手开发

文章目录 1. 实现一个简单的倒计时器开始、暂停2. 串口助手开发 1. 实现一个简单的倒计时器开始、暂停 namespace Timer {public partial class Form1 : Form{int count;//用于定时器计数int time;//存储设定的定时值bool parse false;//控制暂停计时public Form1(){Initiali…...

图论① dfs | Java | LeetCode 797,Kama 98 邻接表实现(未完成)

797 所有可能路径 https://leetcode.cn/problems/all-paths-from-source-to-target/description/ 输入&#xff1a;graph [[1,2],[3],[3],[]] 题目分析&#xff0c;这里 class Solution {//这个不是二维数组&#xff0c;而是listList<List<Integer>> res new Ar…...

Mac安装nvm以及配置环境变量

安装nvm brew install nvm安装成功后会出现这样一段话: Add the following to your shell profile e.g. ~/.profile or ~/.zshrc:export NVM_DIR"$HOME/.nvm"[ -s "/opt/homebrew/opt/nvm/nvm.sh" ] && \. "/opt/homebrew/opt/nvm/nvm.sh&q…...

AUTOSAR实战教程-使用DET来发现开发错误

2年之前因为在调试AUTOSAR存储协议栈的时候使用DET并没发现有用的信息,所以就武断下结论--这玩意没有用。活到老学到老吧,bug经历的多了,发现这玩意还挺有用的。说一下这个bug的背景。 在将时间同步报文改道CanTsync之后,由于这个AUTOSAR工具本身的问题以及配置工程师本身的…...

ZeroMQ(二):请求-响应模式,C和C++。

目录 请求响应基础 基本概念 工作流程 典型应用 请求-响应模式的特点 应用实例 优点 缺点 ZEROMQ C语言 2.1 服务器端代码&#xff08;Reply Server&#xff09; 2.2 客户端代码&#xff08;Request Client&#xff09; 3. 编译代码 4. 详细说明 ZEROMQ C 1. …...

【虚拟仿真】Unity3D中实现2DUI显示在3D物体旁边

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址QQ群:398291828大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 这篇文章来实现2DUI显示在3D物体旁边,当我们需要在3D模型旁边显示2DUI的时候,比如人物的对…...

代码随想录 day 29 贪心

第八章 贪心算法 part03 134. 加油站 本题有点难度&#xff0c;不太好想&#xff0c;推荐大家熟悉一下方法二 https://programmercarl.com/0134.%E5%8A%A0%E6%B2%B9%E7%AB%99.html 135. 分发糖果 本题涉及到一个思想&#xff0c;就是想处理好一边再处理另一边&#xff0c;不…...

开源:LLMCompiler高性能工具调用框架

开源&#xff1a;LLMCompiler高性能工具调用框架 LLMCompilerLLMCompiler 框架图任务提取单元使用方式参考链接 LLMCompiler LLMCompiler 是一种 Agent 架构&#xff0c;旨在通过在DAG中快速执行任务来加快 Agent 任务的执行速度。它还通过减少对 LLM 的调用次数来节省 Tokens …...

【学习方法】高效学习因素 ① ( 开始学习 | 高效学习因素五大因素 | 高效学习公式 - 学习效果 = 时间 x 注意力 x 精力 x 目标 x 策略 )

文章目录 一、高效学习因素1、开始学习2、高效学习因素五大因素3、高效学习公式 - 学习效果 时间 x 注意力 x 精力 x 目标 x 策略 一、高效学习因素 1、开始学习 对于 学习差 , 调皮捣蛋 的学生 , 不要把 学习成绩差 的 原因 归因为 不爱学习 / 没有学习方法 , 可能是 还没有 …...

LeetCode Medium|【146. LRU 缓存】

力扣题目链接 题意&#xff1a;本题的题意就是希望我们设计一个满足 LRU 缓存的数据结构&#xff0c;LRU即最近最少使用。 需要我们实现 get 和 put 方法&#xff0c;即从缓存中获取值和设置缓存中值的方法。 还有一个约束条件就是缓存应当有容量限制&#xff0c;如果实现 put …...

(南京观海微电子)——LCD OTP(烧录)介绍

OTP OTP只是一种存储数据的器件&#xff0c;全写:ONETIMEPROGRAM。 OTP目的&#xff1a;提高产品的一致性 客户端的接口不支持和我们自己的产品IC之间通信&#xff0c;即不支持写初始化&#xff0c;所以产品的电学功能以及光学特性需要固化在IC中&#xff0c;所以需要我们来进行…...

[E二叉树] lc572. 另一棵树的子树(dfs+前中序判断+树哈希+树上KMP+好题)

文章目录 1. 题目来源2. 题目解析 1. 题目来源 链接&#xff1a;572. 另一棵树的子树 2. 题目解析 看到这个题目就感觉不简单&#xff0c;因为写了写 dfs 版本的&#xff0c;发现好像不太会… 还是简单粗暴一点&#xff0c;直接搞一个 前序中序&#xff0c;进行判断即可。我…...

C# 设计模式之简单工厂模式

总目录 前言 本文是个人基于C#学习设计模式总结的学习笔记&#xff0c;希望对你有用&#xff01; 1 基本介绍 简单工厂模式 定义&#xff1a;用于创建对象&#xff0c;将对象的创建与使用分离。 简单工厂模式中用于创建实例的方法是静态(static)方法&#xff0c;因而简单工厂…...

mac中dyld[5999]: Library not loaded: libssl.3.dylib解决方法

需要重新安装下openssl3.0版本 brew reinstall openssl3.0 安装后执行还是报错&#xff0c;需要找到openssl的安装路径 /opt/homebrew/Cellar/openssl3.0/3.0.14/lib/ 将libssl.3.dylib和libcrypto.3.dylib拷贝到自己的二进制文件同目录下&#xff0c;再执行二进制文件就可…...

python 容器

文章目录 数据容器特点比较通用序列操作示例代码1. s.index(x[, i[, j]])2. s.count(x)示例代码注意事项代码解释输出结果 数据容器的通用转换1. list()2. tuple()3. str()4. set()5. dict()6. enumerate()7. zip()8. sorted()9. reversed()10. map()11. filter()12. join()示例…...

微信小程序中Component中如何监听属性变化

1.在父组件的.json文件中引入子组件&#xff1a; "usingComponents": {"articleList":"../../components/articleList/articleList",}2.在父组件中给子组件绑定数据 <articleList num"{{number}}"></articleList>3.子组…...

【Python 逆向滑块】(实战五)逆向滑块,并实现用Python+Node.js 生成滑块、识别滑块、验证滑块、发送短信

逆向日期&#xff1a;2024.08.03 使用工具&#xff1a;Python&#xff0c;Node.js 本章知识&#xff1a;滑块距离识别&#xff0c;滑块轨迹生成&#xff0c;验证滑块并获取【validate】参数 文章难度&#xff1a;中等&#xff08;没耐心的请离开&#xff09; 文章全程已做去敏处…...

微服务架构设计的最佳实践

在当今快速变化的软件开发环境中&#xff0c;微服务架构因其灵活性、可扩展性和可维护性而逐渐成为大型分布式系统的首选架构模式。然而&#xff0c;成功实施微服务架构并非易事&#xff0c;它要求开发团队遵循一系列最佳实践来确保系统的可靠性、效率和可管理性。本文将探讨微…...

样式与特效(3)——实现一个测算页面

这次我们使用前端实现一个简单的游戏页面,理论上可以增加很多玩法&#xff0c;&#xff0c;但是这里为了加深前端的样式和JS点击事件&#xff0c;用该案例做练习。 首先需要掌握手机端的自适应&#xff0c;我们是只做手机端玩家页面 。需要允许自适应手机端页面&#xff0c; 用…...

芯片制造过程4光刻机

以下内容均取自哔哩哔哩up主谈三圈 链接: 芯片制造详解04&#xff1a;光刻技术与基本流程&#xff5c;国产之路不容易 1.光刻原理 通过光掩膜、光刻机、光刻胶进行光刻 光掩膜是芯片的蓝图&#xff0c;是一张刻有集成电路板图的玻璃遮光板光刻机就像一台纳米级的打印机&#…...

Kazam vs OBS:Ubuntu 24.04 屏幕录制工具对比与选择指南

Kazam vs OBS&#xff1a;Ubuntu 24.04 屏幕录制工具深度评测与实战选择 在数字内容创作爆发的时代&#xff0c;屏幕录制已成为游戏实况、在线教学、产品演示的标配技能。对于Ubuntu 24.04用户而言&#xff0c;Kazam和OBS Studio这两款开源工具常被拿来比较——前者以轻量简洁著…...

咱们今天来唠唠机器人轨迹规划那点事儿。不少小伙伴在玩机械臂的时候总会遇到关节空间和笛卡尔空间轨迹规划的抉择困难症,这俩货到底有什么区别?直接上硬核代码

matlab笛卡尔空间和关节空间轨迹规划 关节空间机器臂多项式轨迹规划定做&#xff0c;353和333多项式轨迹规划和优化关节空间规划有个大杀器——多项式插值。比如要让机械臂从A点平滑运动到B点&#xff0c;咱们可以玩三次多项式&#xff08;3-3-3&#xff09;或者五次多项式&…...

Dark Reader实用指南:解决夜间浏览痛点的高效方案

Dark Reader实用指南&#xff1a;解决夜间浏览痛点的高效方案 【免费下载链接】darkreader Dark Reader Chrome and Firefox extension 项目地址: https://gitcode.com/gh_mirrors/da/darkreader 在数字时代&#xff0c;我们每天面对屏幕的时间越来越长&#xff0c;尤其…...

ai辅助开发comfyui:让快马ai成为你构建复杂工作流的智能编程伙伴

最近在折腾ComfyUI时&#xff0c;发现构建复杂工作流特别容易卡在细节问题上。比如想同时用Canny边缘检测和Openpose控制生成效果&#xff0c;光是调试节点连接和参数就花了大半天。后来尝试用InsCode(快马)平台的AI辅助功能&#xff0c;发现能省下不少重复劳动。这里分享下用A…...

终极Windows 11优化指南:一键清理系统臃肿,让电脑速度翻倍

终极Windows 11优化指南&#xff1a;一键清理系统臃肿&#xff0c;让电脑速度翻倍 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其…...

46535

4675328...

中兴光猫配置解密工具:轻松破解网络限制,完全掌控家庭网络

中兴光猫配置解密工具&#xff1a;轻松破解网络限制&#xff0c;完全掌控家庭网络 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 你是否遇到过想要修改光猫设置却找不到入…...

【Python张量计算实战宝典】:20年AI架构师亲授5大高频场景优化技巧,错过再等一年

第一章&#xff1a;张量计算基础与PyTorch/TensorFlow双框架选型指南张量是深度学习的核心数据结构&#xff0c;本质为多维数组&#xff0c;支持自动微分、GPU加速与动态/静态计算图构建。理解其内存布局&#xff08;如C-contiguous vs. Fortran-contiguous&#xff09;、广播机…...

汽车电子测试人的 Prompt 工程

专栏&#xff1a;《AI 汽车电子测试实战》第 17 篇 作者&#xff1a;一线汽车电子测试工程师 适合人群&#xff1a;所有使用 AI 的测试工程师、想提升 AI 使用效率的测试人员开篇&#xff1a;为什么需要学 Prompt&#xff1f; 这是我上个月在某车企的 AI 培训项目中的真实经历。…...

从“炼丹”到“调参”:聊聊反向传播里那些容易被忽略的梯度细节(以PyTorch为例)

从“炼丹”到“调参”&#xff1a;聊聊反向传播里那些容易被忽略的梯度细节&#xff08;以PyTorch为例&#xff09; 在深度学习的世界里&#xff0c;反向传播算法就像炼金术士的魔法书&#xff0c;而梯度则是那些隐藏在公式背后的神秘力量。许多开发者能够熟练地调用.backward(…...