logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

很多人学不会STM32,第一步就卡在了时钟树

STM32时钟配置是初学者容易忽视却至关重要的问题。文章指出,时钟错误会导致串口乱码、定时器不准等隐性故障,而这些问题常被误认为是外设代码错误。

文章图片
#stm32#单片机#嵌入式硬件
为什么同一个引脚不能同时做按键和串口

本文揭示了STM32开发中一个常见但容易忽视的问题:同一IO引脚被多个功能复用导致的冲突现象。通过典型案例(按键与串口复用PA10引脚)分析,指出引脚能复用不等于能同时使用,详细解释了电平冲突的物理原理,并给出分时复用的风险提示。文章强调硬件设计阶段合理规划IO的重要性,提出优先保障关键外设、保留调试资源等实用建议,最后总结引脚冲突的三大本质原因(模式冲突、外设冲突、电平冲突),提醒开发者遇到通信

文章图片
#单片机#stm32#嵌入式硬件
一个 GPIO 口到底能带多大负载?很多人从一开始就理解错了

本文解释了STM32 GPIO无法驱动继电器、蜂鸣器等大功率负载的原因。虽然GPIO能输出3.3V高电平,但其带载能力有限,无法提供负载所需的大电流。文章指出,万用表测量空载电压正常不代表能带动负载,建议查看芯片手册确认GPIO电流能力,强调长期工作在极限值会出问题。正确做法是用GPIO控制三极管/MOS管来驱动负载,并注意线圈类负载要加续流二极管防止电压尖峰。最后提醒开发者:GPIO是信号控制端

文章图片
#单片机#嵌入式硬件
Cursor 智能代码编辑器深度评测报告

本文深入探讨了智能辅助工具在复杂多语言项目开发中的实际应用效果。通过真实场景测试,文章验证了工具在多语言支持、全库上下文理解、复杂重构等方面的表现,展示了其自动生成代码、识别依赖关系和优化逻辑的能力。同时分析了网络依赖、隐私安全、与传统IDE插件的差异,以及长期使用的稳定性问题。文章为开发者提供了智能工具选型、配置优化和安全使用的实用建议,帮助团队在保证代码安全的前提下提升开发效率。

文章图片
#编辑器
按键扫描还放 while 里?难怪你的 STM32 项目越写越卡!

STM32项目中按键扫描常导致系统变慢卡顿,问题根源在于常见的阻塞式写法(如延时消抖和等待松手)会占用CPU资源。正确做法是采用非阻塞方式:用定时器周期扫描按键,仅上报事件标志,由主循环处理业务逻辑。核心原则是避免在按键函数中执行耗时操作,分离按键检测与功能处理。这种优化能显著提升多任务系统的响应速度和稳定性,尤其适用于需要复杂按键交互(如长按、组合键)的菜单项目。

文章图片
#stm32#嵌入式硬件#单片机
闲着没事,把之前写的局域网聊天 Demo 整理开源了:Qt + TCP + SQLite

LanQQ Chat是一个基于C++/Qt开发的完整即时通信学习项目,实现了局域网内真实可运行的聊天系统。项目包含客户端和服务端,具备账号登录、消息收发、历史记录同步等核心功能,并解决了TCP粘包、消息ACK确认、失败重试等典型工程问题。

文章图片
#开源#qt#tcp/ip
按键消抖还在 delay?难怪你按一下,STM32 像抽风一样连触发

按键消抖看起来是小问题。但它考验的是嵌入式编程思维。GPIO 读到的是电平。用户操作才是事件。不要一看到低电平就执行。不要动不动就 delay 堵住程序。真正适合项目的按键写法,应该是:定时扫描 + 消抖计数 + 状态判断 + 事件输出下次你的 STM32 按键又出现“按一次触发多次”“短按长按分不清”的问题,别急着怀疑硬件。按下 -> delay -> 执行很多按键翻车现场,问题就出在这里。也欢

文章图片
#嵌入式硬件#stm32#单片机
深度学习在机器视觉领域的应用:分类、目标检测与语义分割

随着深度学习技术的不断进步,机器视觉领域已经发生了革命性的变化。深度学习的算法在图像和视频的理解上展现出了前所未有的效果,尤其在图像分类、目标检测和语义分割这三个核心任务上取得了显著的成就。本文将从深度学习算法工程师的角度,探讨这三个任务的技术要点、使用场景以及它们之间的关联。

文章图片
#深度学习#分类#目标检测
为什么你复制别人的 STM32 工程,到了自己电脑就报错一堆?

新手常犯的错误是仅复制代码文件而忽略工程配置,导致头文件缺失、芯片型号不匹配、启动文件错误等问题。核心原因涉及芯片型号选择、启动文件匹配、头文件路径、宏定义和库版本五个关键点。作者通过四层架构(业务代码、芯片支持文件、库文件、工程配置)解析工程结构,并给出实用建议:先用CubeMX新建匹配工程再逐步移植功能,优先解决首个报错,保留完整工程说明文档。

文章图片
#stm32#嵌入式硬件
STM32 初学者最容易翻车的地方:所有代码都塞进 main.c

初学STM32时,常将所有代码堆砌在main.c中,导致项目臃肿难维护。核心问题在于缺乏模块化分层:驱动层(硬件操作)、应用层(功能逻辑)、协议层(数据解析)和状态机(系统状态)未分离。正确做法是将功能拆分为独立模块(如app_key.c、protocol.c),main.c仅负责初始化和调度。模块化能提升调试效率,避免全局变量滥用和逻辑混乱。建议从学习阶段养成分层习惯,确保代码可扩展、易维护。

文章图片
#stm32#c语言#嵌入式硬件
    共 131 条
  • 1
  • 2
  • 3
  • 14
  • 请选择