- 博客(61)
- 收藏
- 关注
原创 用 tkinter 写桌面小工具:grid 布局、线程通信与打包
桌面小工具看着简单,真写起来全是细节:布局在高 DPI 下错位、点一下按钮界面假死、打包成 exe 后图标和资源找不到。这篇以我的显卡切换工具为例,把 tkinter 的 grid 权重、queue 加 after 的线程通信、DPI 声明和 PyInstaller 资源路径讲清楚,代码可以直接抄。
2026-11-02 06:02:14
5
原创 Flask 做一个局域网文件互传页:扫码即传与文件名安全的处理
手机往电脑传照片、电脑往手机传文档,微信会压缩、数据线又要来回插。这篇记录我用 Flask 写的一个局域网互传页:同一 Wi-Fi 下扫码打开,上传下载都不装客户端。重点讲清 0.0.0.0 绑定、文件名清洗、令牌防护和 Werkzeug 阻塞这几处为什么这样写。
2026-11-01 06:01:58
131
原创 红外遥控 NEC 解码为什么必须用输入捕获:一次轮询丢码的排查
做离线遥控器时,主循环轮询红外接收头总是丢码。从 NEC 的 9ms 引导码与 560/1690us 位宽讲起,说清轮询为什么会被主循环阻塞打乱时间基准,再给出 TIM2 输入捕获的状态机、LSB 先发的字节倒序问题与长按重复码的处理。
2026-10-31 06:06:08
205
原创 EasyEDA PCB 快速设计Skills
本文介绍基于 EasyEDA API 的快速 PCB 设计工作流,涵盖坐标换算、层映射、图元调用等核心概念,提供从环境检查、建工程到板框绘制、逐层布线的标准化流程。重点强调单位转换(mm↔mil)、板框闭合必要性及金色效果实现(铜层+阻焊开窗),并通过脚本化操作提升效率,适用于六层板设计与图像描摹(如校徽)自动化,助力高效无错开发。
2026-10-30 21:21:50
728
原创 GitHub Actions 打包 Windows exe:中文编码与产物上传
md-workflow-manager 每次发版都要手动 PyInstaller 打包、改文件名、传 Release,漏一步就得重来。这篇记录我把它搬上 GitHub Actions 的过程:为什么必须用 windows-latest、中文日志为什么会乱码、PyInstaller 在 CI 里的路径差异,以及 upload-artifact v4 与 Release 的权限和重跑问题。
2026-10-30 06:03:50
461
原创 MySQL 给订单表加了索引反而更慢:回表、选择性与最左前缀
后台订单列表翻到后面几页明显变卡,我给 create_time 加了索引,结果更慢。这篇用 EXPLAIN 一步步拆开:二级索引为什么要回表、选择性低的列为什么会被优化器放弃、联合索引的顺序为什么决定成败,以及索引本身的写入代价。
2026-10-29 06:01:49
301
原创 FastAPI 同一个路由注册了两次:改了代码却不生效的排查
重构接口返回结构后,服务端代码明明改了,前端拿到的还是旧字段。重启、清缓存、删 __pycache__ 全试过都没用,最后发现同一个 path 在 app 和 Router 里各注册了一次,Starlette 只认先注册的那个。这篇讲清成因、定位方法和两道防线。
2026-10-28 06:01:53
220
原创 STM32 采集 NTC 温度抖动:RC 硬件滤波与软件滑动平均怎么选
恒温箱测温的小数位乱跳,从 ADC 原始值和量化误差查起,讲清 RC 低通的截止频率与建立时间怎么算、滑动平均和中值滤波的延迟代价,以及 STM32 上固定点实现和最终取舍。
2026-10-27 06:01:55
171
原创 SpringBoot 三层架构里 DTO 该放哪一层:从鸿蒙登录接口返回密码说起
给鸿蒙 App 写的 SpringBoot 后端,登录接口直接返回 User 实体,password 也一起回了客户端。这篇按三层拆开,讲清实体、DTO、VO 各该待在哪一层,校验注解为什么不能写在实体上。
2026-10-26 06:03:24
333
原创 AERO-6X 六轴机械臂数字孪生:关节联动、爆炸分层与实时剖面
从只能看结构的静态演示,到六轴关节可驱动、爆炸分层可调、外壳透视和实时剖面的数字孪生。记录 AERO-6X 在 Three.js 里的状态拆分、Group 层级、裁剪面与标注投影,以及把依赖本地化后双击即用的做法。
2026-10-25 10:15:13
263
原创 把 OpenMV 的识别结果接到网页上:串口转 WebSocket 的最小闭环
OpenMV 在本机识别色块,但想在浏览器里实时看到框。本文用 Python 搭一个串口转 WebSocket 的桥,讲清协议怎么定、慢客户端怎么丢帧、前端怎么画,以及端口占用等实际坑。
2026-10-25 06:01:54
245
原创 Three.js 单文件离线机械臂工作台:爆炸图、透明外壳与剖面
从结构教学演示的需求出发,用 Three.js 程序化生成六轴机械臂的 48 个零件,把爆炸图、透明外壳与 X/Y/Z 剖面统一到同一个状态机,再用 esbuild 内联 Three.js 和 CSS,打成一个断网也能双击运行的 HTML,并附上真实浏览器测试与离线验证方法。
2026-10-24 14:27:35
190
原创 STM32F103 定时器的三种用法:PWM 输出、输入捕获与编码器接口
从小车项目里三个定时器互相打架的现场出发,讲清 STM32F103 的 PWM、输入捕获和编码器模式在信号链上各自做了什么,HAL 配置怎么写,以及预装载、16 位回绕、引脚复用这些容易翻车的地方。
2026-10-24 09:26:00
253
原创 给 FastAPI 接大模型:超时、重试和 token 成本该怎么管
课堂答疑接口上线后频繁 504,模型账单却多扣了几笔。这篇拆开一次大模型调用链,讲清超时该分几层设、哪些错误才能重试、上下文和 max_tokens 如何放大成本,并给出一段可直接复用的 httpx 封装。
2026-10-23 06:01:40
331
原创 MySQL 索引为什么会让查询变慢:最左前缀、回表与选择性
订单列表加了索引却没变快,写入反而更慢。这篇从 InnoDB 的 B+ 树讲起,把最左前缀、回表和索引选择性串起来,解释索引何时帮倒忙,并给出能直接照着改的 SQL 与 EXPLAIN 检查方法。
2026-10-22 06:02:20
271
原创 2026年深度学习前沿技术全景解读:从大模型到具身智能
2026年深度学习前沿聚焦架构革新与智能落地:MoE与SSM突破算力瓶颈,超长上下文实现“全书理解”;多模态迈向原生统一,视觉、语音、视频深度融合;AI Agent具备自主规划与工具调用能力,多智能体协作成主流;高效微调与边缘部署推动模型普惠;视觉生成迈向可控、可编辑的三维世界;世界模型与具身智能结合,驱动机器人与自动驾驶实现物理世界的自主决策。技术核心从“能说”转向“能做”,迈向真实世界智能。
2026-10-21 19:59:13
1155
原创 Python 在定时任务里输出 emoji,UnicodeEncodeError 从哪来
一个 tkinter 工具在 Windows 计划任务里只留半截日志就退出,报错 UnicodeEncodeError: 'gbk' codec。本文从控制台编码、PEP 528 查到子进程解码,给出不靠 chcp 的修法。
2026-10-21 06:02:54
296
原创 STM32 的 I2C 卡死在 BUSY:从机按住 SDA 的成因与恢复时序
从一次 OLED 刷新卡死的现场出发,讲清 I2C 开漏总线为什么会停在 BUSY、从机为什么一直按住 SDA,以及用 9 个时钟脉冲加手动 STOP 恢复总线的完整代码与预防措施。
2026-10-20 06:02:03
161
原创 用 PyInstaller 把 Python 脚本打包成单文件 exe:图标、路径与中文目录的完整清单
把实验室用的 Python 小工具发给同学,源码和依赖都不想暴露,于是用 PyInstaller 打单文件 exe。这篇记录图标、控制台、资源路径、中文目录和杀毒误报的完整处理,附可直接抄的构建脚本与排查表。
2026-10-19 11:14:52
258
原创 用 FastAPI 写带权限的文件上传接口:路径穿越、类型校验与大小限制
从教师上传试卷的真实需求出发,拆解 FastAPI 上传接口的鉴权、文件名处理、流式大小限制与内容校验,给出可以直接照抄的实现和常见错误对照表。
2026-10-19 07:05:46
422
原创 用 tkinter 和 pyserial 给 STM32 写一个串口调试上位机
调试 STM32 时串口助手只能看文本,采样数据既不能筛选也不能存。这篇从零搭一个最小可用的上位机:读线程、自定义帧格式、tkinter 批量刷新,最后打成单文件 exe,代码可以直接抄。
2026-10-18 23:20:24
307
原创 STM32 的 ADC 采样什么时候必须上 DMA:三种配置的取舍
轮询单次转换、连续转换、连续+DMA 三种配置的差别,为什么多通道扫描几乎绕不开 DMA,以及环形缓冲加半传输中断的双缓冲写法。附我踩过的四个坑。
2026-10-17 15:38:22
190
原创 用 FastAPI 搭一个课堂情绪识别教学平台:MJPEG 推流、试卷导入和大模型答疑
摄像头画面怎么实时进浏览器、识别线程怎么不被数据库写操作拖住、扫描版试卷怎么靠大模型变成结构化题目。附我核对源码后确认还没修的 7 个问题。
2026-10-17 15:11:38
496
原创 C#接口和文件处理
接口使用interface关键字声明,它与类的声明类似。接口声明默认是 public 的。以上代码定义了接口 IMyInterface。通常接口命令以 I 字母开头,这个接口只有一个方法 MethodToImplement(),没有参数和返回值,当然我们可以按照需求设置参数和返回值。值得注意的是,该方法并没有具体的实现。接下来我们来实现以上接口:InterfaceImplementer.cs// 接口成员。
2024-08-14 12:30:35
1198
原创 C# 结构体和类
为了定义一个结构体,您必须使用 struct 语句。struct 语句为程序定义了一个带有多个成员的新的数据类型。/* 声明 Book1,类型为 Books *//* 声明 Book2,类型为 Books *//* book 1 详述 *//* book 2 详述 *//* 打印 Book1 信息 *//* 打印 Book2 信息 */当上面的代码被编译和执行时,它会产生下列结果:类的定义是以关键字class开始,后跟类的名称。
2024-08-14 12:30:19
1652
原创 C# 字符串的使用
在 C# 中,您可以使用字符数组来表示字符串,但是,更常见的做法是使用关键字来声明一个字符串变量。string 关键字是类的别名。
2024-08-13 17:38:09
1487
原创 C#数组的使用
声明数组变量并不是声明 number0、number1、...、number99 一个个单独的变量,而是声明一个就像 numbers 这样的变量,然后使用 numbers[0]、numbers[1]、...、numbers[99] 来表示一个个单独的变量。当您创建一个数组时,C# 编译器会根据数组类型隐式初始化每个数组元素为一个默认值。数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合。在前面的实例中,我们使用一个 for 循环来访问每个数组元素,您也可以使用一个。关键字来创建数组的实例。
2024-08-13 17:37:57
1348
原创 C#中的方法
当定义一个方法时,从根本上说是在声明它的结构的元素。:访问修饰符,这个决定了变量或方法对于另一个类的可见性。:返回类型,一个方法可以返回一个值。返回类型是方法返回的值的数据类型。如果方法不返回任何值,则返回类型为void。:方法名称,是一个唯一的标识符,且是大小写敏感的。它不能与类中声明的其他标识符相同。:参数列表,使用圆括号括起来,该参数是用来传递和接收方法的数据。参数列表是指方法的参数类型、顺序和数量。参数是可选的,也就是说,一个方法可能不包含参数。:方法主体,包含了完成任务所需的指令集。
2024-08-12 17:39:36
1601
原创 C# 程序结构
C# 是一个现代的、通用的、面向对象的编程语言,它是由微软(Microsoft)开发的,由 Ecma 和 ISO 核准认可的。它是由 Anders Hejlsberg 和他的团队在 .Net 框架开发期间开发的。C# 是专为公共语言基础结构(CLI)设计的。CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。
2024-08-12 09:00:00
1167
原创 SQL--事务
事务 是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。就比如: 张三给李四转账1000块钱,张三银行账户的钱减少1000,而李四银行账户的钱要增加 1000。这一组操作就必须在一个事务的范围内,要么都成功,要么都失败。
2024-02-08 08:00:00
959
1
原创 SQL--多表查询
1). 删除之前 emp, dept表的测试数据2). 执行如下脚本,创建emp表与dept表并插入测试数据-- 创建dept表,并插入数据name varchar(50) not null comment '部门名称') comment '部门表';VALUES (1, '研发部'),(2, '市场部'),(3, '财务部'),(4,'销售部'),(5, '总经办'),(6, '人事部');-- 创建emp表,并插入数据。
2024-02-07 10:41:01
4252
原创 SQL--函数
函数 是指一段可以直接被另一段程序调用的程序或代码。也就意味着,这一段程序或代码在MySQL中 已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。那 么,函数到底在哪儿使用呢?我们先来看两个场景:1). 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能 够看到当前员工入职的天数。而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计 算出天数呢?2). 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。
2024-02-06 07:00:00
1117
原创 SQL--DCL
其中 Host代表当前用户访问的主机, 如果为localhost, 仅代表只能够在当前本机访问,是不可以 远程访问的。A. 创建用户itcast, 只能够在当前主机localhost访问, 密码123456;B. 授予 'heima'@'%' 用户itcast数据库所有表的所有操作权限。B. 创建用户heima, 可以在任意主机访问该数据库, 密码123456;C. 撤销 'heima'@'%' 用户的itcast数据库的所有权限。A. 查询 'heima'@'%' 用户的权限。3). 修改用户密码。
2024-02-05 09:00:00
630
原创 SQL--DQL
查询关键字:在一个正常的业务系统中,查询操作的频次是要远高于增删改的,当我们去访问企业官网、电商网站, 在这些网站中我们所看到的数据,实际都是需要从数据库中查询并展示的。而且在查询的过程中,可能 还会涉及到条件、排序、分页等操作。那么,本小节我们主要学习的就是如何进行数据的查询操作。准备完毕后,我们就可以看到emp表中准备的16条数据。接下来,我们再来完成DQL语法的学习。
2024-02-05 06:00:00
1357
1
原创 SQL--图形化界面工具
上述,我们已经讲解了通过DDL语句,如何操作数据库、操作表、操作表中的字段,而通过DDL语句执 行在命令进行操作,主要存在以下两点问题:1).会影响开发效率;2). 使用起来,并不直观,并不方便;所以呢,我们在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率。而目前 mysql主流的图形化界面工具,有以下几种:而idea里面自己带的有数据库 database,我们直接用就好。
2024-02-04 12:27:31
1197
原创 SQL--DDL
全称 Structured Query Language,结构化查询语言。操作关系型数据库的编程语言,定义了 一套操作关系型数据库统一标准。在学习具体的SQL语句之前,先来了解一下SQL语言的同于语法。SQL语句,根据其功能,主要分为四类:DDL、DML、DQL、DCL。Data Definition Language,数据定义语言,用来定义数据库对象(数据库,表,字段) 。1.查询所有数据库 2.查询当前数据库3.创建数据库 案例:A. 创建一个itcast数据库, 使用数据库默认的字符集。 B. 创
2024-02-03 23:41:41
1499
1
空空如也
可以完成一下计算机网络的配置吗
2024-05-23
解决一下github贪吃蛇,小绿点显示不全的原因
2023-09-06
来活了!求优化一下,也可以多加一些关于字符串处理的函数(最好利用指针).
2023-05-17
能不能给我这个数组系统优化一下啊,谢谢你们啊
2023-05-07
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅