嵌入式
文章平均质量分 92
bug总结、项目经验
芒果维C
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入理解CRC32:参数详解与C语言实现(附完整源码及验证)
CRC(Cyclic Redundancy Check)是一种广泛应用于数据通信和存储的查错校验码。CRC32 生成长度为 32 位的校验值,常用于 ZIP、GZIP、以太网等协议中。本文实现的算法模型是常见的,其多项式为0xEDB88320,也是 Python和zlib.crc32的默认算法。本文详细解析了 CRC32 的六项关键参数,并通过代码展示了它们的具体作用。提供的 C 语言实现小巧、无第三方依赖,可直接嵌入单片机或嵌入式项目中。使用标准测试数据0xCBF43926。原创 2026-07-08 09:32:30 · 620 阅读 · 24 评论
-
压扁的图像:嵌入式设备中的长方形像素之谜
本文针对非标准显示屏(如工业控制屏、车载异形屏等)的UI设计难题,提出了专业解决方案。当显示屏像素不是正方形时,传统设计方法会导致图形失真、布局错位等问题。文章以7英寸TFT模块为例,详细讲解了如何通过计算像素宽高比(PAR),在Photoshop中正确设置自定义像素比例(如1.076:1),从而确保设计效果与物理显示完全一致。文中包含从规格书参数解读、PAR计算公式到Photoshop实操步骤的完整指南,特别强调了验证方法和常见误区,帮助设计师彻底告别反复试错的困境,实现真正的"所见即所得&qu原创 2026-04-20 20:16:25 · 604 阅读 · 47 评论 -
嵌入式 SHA-256 完全实现(附原码)(无 uint64_t,减少栈使用)
适用场景:本实现适合 RAM 小于 4 KB、无法使用uint64_t且数据量不超过512 MB的单片机(如 8051、PIC、AVR 等)。性能:每 64 字节块约进行 64 轮运算,在 16 MHz 的 8 位机上约需数十毫秒,足够大部分实时性要求不高的应用。可移植性:完全使用标准 C,仅依赖common.h中的内存函数(可轻松替换为string.h安全提醒:SHA-256 本身是安全的,但单片机应用中应注意防侧信道攻击(如功耗分析),必要时加入随机延时或掩码。扩展。原创 2026-04-17 19:29:45 · 909 阅读 · 34 评论 -
C语言高效编程的五个“隐形利器”:从入门到精通的核心技巧
摘要:本文深入解析C语言中五个经典编程技巧,包括整数四舍五入((a+b/2)/b)、高效向上取整((a+b-1)/b)、位运算判断奇偶性(a&1)、数组长度计算(sizeof(a)/sizeof(a[0]))和状态取反(a^=1)。通过完整代码示例和底层原理分析,揭示这些技巧背后的计算机运算本质。掌握这些方法不仅能编写更简洁高效的代码,更能深入理解计算机底层工作机制,从"会用"进阶到"懂其所以然",提升代码质量和开发能力。原创 2026-03-07 13:10:19 · 419 阅读 · 51 评论 -
从一道隐蔽的Bug说起:C语言运算符优先级与结合性深度解析
本文从C语言中一个因运算符优先级误解引发的隐蔽Bug出发,深度解析了运算符优先级与结合性的核心规则。通过完整的代码示例和运行结果对比,直观展示了优先级错误如何导致程序行为与开发者意图背道而驰。文章附带了原创的C语言运算符优先级与结合性总表,并进一步剖析了结合性对表达式求值的影响,揭示了*p++、逻辑短路等多个常见陷阱。最终,文章给出了最核心的编码建议:当表达式涉及多种运算符时,务必使用圆括号明确计算顺序,以消除歧义、增强代码可读性,从根本上避免此类错误。原创 2026-03-08 22:20:22 · 264 阅读 · 19 评论 -
深入探讨C语言局部变量命名:简短之道与最佳实践
本文探讨了C语言中局部变量命名的长短权衡。通过分析一段因变量命名过长而导致阅读负担的代码,提出了“作用域越小,命名可越短”的核心原则。文章认为,在局部范围内使用i、j、temp等简短惯用名,能减少阅读时的“解码”成本,提升代码清爽度。同时强调,现代IDE应作为辅助工具,而非写出冗长命名的借口。最后指出在复杂算法、较长函数或涉及安全逻辑等场景下仍需使用描述性命名,并建议团队建立一致规范,以可读性为首要目标。原创 2026-03-09 16:42:53 · 166 阅读 · 24 评论 -
深度解剖 | C语言中那些隐藏的数据溢出陷阱:从整型提升到回绕,再到移植性灾难
本文深入剖析了C语言编程中极易被忽视却又频繁引发诡异Bug的三类数据溢出陷阱。首先,通过一个看似简单的算术运算案例 (6554 * 10) / 10 != 6554,揭示了计算过程中的隐形截断问题,阐明了在16位系统上中间结果溢出导致计算错误的本质,并给出了“手动提升运算精度”的解决方案。其次,以一个经典的轮询计数器为例,剖析了平台移植带来的逻辑崩塌——同一段利用无符号回绕特性的代码,在16位环境运行正常,移植到32位环境后却逻辑失效。本文深入解释了“整型提升”在此过程中的作用,并提供了通过强制截断原创 2026-03-06 17:15:20 · 807 阅读 · 23 评论
分享