
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
在嵌入式开发(尤其是STM32)中,很多新手会混淆“重写printf”“重定向fputc”“__weak符号”这三个概念,本文从底层逻辑到实战场景,清晰拆解三者的区别和关联,帮你彻底理清思路。
本文介绍了Linux系统中Python脚本的Shebang配置方法。Shebang(#!)是脚本首行特殊声明,用于自动指定解释器,避免手动输入python3命令。配置步骤包括:在脚本首行添加#!/usr/bin/env python3声明,使用chmod +x赋予执行权限,即可通过./脚本名.py直接运行。推荐使用env方式而非硬编码路径,确保跨平台兼容性。文章还解释了底层原理、常见格式选型和三大
本文抛弃枯燥的理论话术,以大家都熟悉的华为鸿蒙全屋智能作为实战案例,通俗拆解概念、对比劣质代码、附上极简代码演示、梳理实际开发价值,看完彻底弄懂,面试、写代码、做系统架构全都能用得上。一个模块职责越单一、内部逻辑关联越强,内聚越高;不管是Java、Python、前端、嵌入式还是架构设计,所有软件开发绕不开一句话:高内聚,低耦合。写代码就像搭建华为智能家居系统,每个功能各司其职就是高内聚,设备之间互
本文抛弃枯燥的理论话术,以大家都熟悉的华为鸿蒙全屋智能作为实战案例,通俗拆解概念、对比劣质代码、附上极简代码演示、梳理实际开发价值,看完彻底弄懂,面试、写代码、做系统架构全都能用得上。一个模块职责越单一、内部逻辑关联越强,内聚越高;不管是Java、Python、前端、嵌入式还是架构设计,所有软件开发绕不开一句话:高内聚,低耦合。写代码就像搭建华为智能家居系统,每个功能各司其职就是高内聚,设备之间互
传统STM32不能跑Linux,根本原因是其Cortex-M内核缺乏MMU且内存太小,硬件设计上就不是为Linux这类大型OS准备的。在STM32上强跑Linux是**“小马拉大车”**,即使勉强启动,也几乎无法运行有意义的应用程序,失去了实用价值。对于需要Linux的项目,应该选择带MMU的Cortex-A内核处理器(如STM32MP1, NXP i.MX系列,TI Sitara系列等)。STM
绝大多数开源项目(如OpenCV、Boost、Qt)都使用CMake管理构建,学习CMake是现代C/C++开发的必备技能。如果你刚开始学习构建系统,建议直接从CMake入手,这是目前最主流、最实用的构建解决方案!欢迎在评论区讨论你的CMake使用经验!
核心问题:delay_ms形参为U8类型时,传入1000会溢出,实际仅延时232ms,导致LED闪烁变快;快速解决:将1000ms拆分为4次250ms延时(×4);根治方案:将delay_ms的形参改为U16(unsigned int),支持直接传入1000;避坑要点:编写延时函数时,务必匹配形参数据类型的取值范围,同时校准单片机主频。
单片机printf输出int失败不是因为需要强转,而是格式符与变量类型不匹配或printf未正确重定向;核心解决方案是精准匹配格式符与变量类型(如uint32_t用%luint用%d),而非盲目强转;确保printf输出端口(串口)已重定向,且编译器启用了完整的printf库支持,是正常输出的基础。如果仍有问题,可检查:① 变量数值是否超出类型范围;② 编译器栈大小是否足够;③ 串口硬件/波特率是
基础语法#if 条件表达式1# if 条件表达式 1 // 条件1为真时编译的代码 # elif 条件表达式 2 // 条件1为假且条件2为真时编译的代码 # elif 条件表达式 3 // 前面条件都假且条件3为真时编译的代码 # else // 所有条件都为假时编译的代码 # endif2。
/ 命令的32位哈希值(预计算)// 命令原文(调试/日志用)// 处理函数指针} Fun_Type;// 数组大小宏,避免硬编码// 命令的32位哈希值(预计算) char alias [ 32 ];// 命令原文(调试/日志用) void(* handle)(void *);// 处理函数指针 } Fun_Type;// 数组大小宏,避免硬编码 # define ARRAY_SIZE(arr)







