嵌入式开发
文章平均质量分 86
极客晨风
路虽远,行则将至;事虽难,做则必成。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
学 AD 不能只会画图:我复刻一块飞控板后,终于搞懂了
本文通过复刻飞控板的实战案例,系统讲解了Altium Designer(AD)的完整工作流程。文章首先指出新手常见误区,强调AD的核心在于工程化管理而非简单绘图。随后详细演示了从项目创建、库管理到封装导入的全过程,重点介绍了如何将嘉立创封装导入AD并建立关联。最后指出项目复刻的真正价值在于电路设计分析,通过拆解飞控板核心模块来深入理解硬件设计原理。全文以"软件操作+硬件理解"的双重视角,为AD学习者提供了一个完整的项目实战指南。(150字)原创 2026-04-07 09:09:54 · 584 阅读 · 0 评论 -
AD基础使用入门教程:新手第一次接触 Altium Designer,先学会这几个基础操作
本文为Altium Designer新手提供基础入门指南,重点讲解项目创建流程。首先强调新建项目时要规范保存路径,建议每个项目独立文件夹管理。基础工程需创建4类文件:原理图库(存放元件符号)、原理图文件(绘制电路连接)、PCB元件库(元件封装)、PCB文件(板级设计)。文章详细说明了每类文件的创建方法,并特别提醒要及时保存(Ctrl+S)和通过项目文件重新打开工程。同时介绍了导入软件自带元件库的方法,列举了新手常见的5个易错点。最后强调打好这些基础对后续学习的重要性,建议先熟练掌握项目搭建流程再深入其他功能原创 2026-03-31 09:19:23 · 913 阅读 · 0 评论 -
AD22安装教程来了!新手也能一次装好,少走弯路
本文详细介绍了Altium Designer 22(AD22)的安装流程,适合电子设计初学者和PCB爱好者。内容包括安装前的准备(关闭杀毒软件、确保磁盘空间等)、分步骤安装指南(解压、管理员运行、选择语言和路径等)、首次启动设置建议(切换本地化显示)以及常见问题解答(安装失败处理、路径选择等)。文章强调通过正规渠道获取软件,并提供实用建议帮助新手顺利完成安装,为后续PCB设计学习打好基础。安装完成后,建议尽快开始实践项目以提升技能。原创 2026-03-30 09:22:33 · 1270 阅读 · 0 评论 -
UART 和 RS-485 到底啥关系?3 分钟讲清楚!
RS-485通信常被误认为就是串口,实际UART负责数据格式,RS-485负责物理传输,二者常配合使用但有本质区别。UART使用TTL电平适用于短距离点对点通信,RS-485采用差分信号支持远距离多节点传输。正确使用需注意:1)区分功能层次;2)采用双绞线并加终端电阻;3)速率与距离成反比;4)总线两端接120Ω电阻;5)A/B线极性可能需调整。工程选型应根据距离、节点数和干扰情况决定是否使用RS-485收发器。原创 2025-11-05 09:30:44 · 965 阅读 · 0 评论 -
高级语言源程序生成机器代码的过程
高级语言程序需要经过预处理、编译、汇编和链接四个步骤才能转换为可执行文件。预处理阶段处理宏定义和头文件;编译阶段将源代码转换为汇编代码;汇编阶段生成机器语言目标文件;链接阶段整合目标文件和库函数,最终生成可执行的机器指令程序。这一转换过程实现了从人类可读代码到计算机可执行指令的转化。原创 2025-10-21 09:51:42 · 644 阅读 · 0 评论 -
RAM 和 ROM 到底有什么区别?
RAM和ROM是设备中两种不同的存储类型。RAM是"随机存取存储器",相当于设备的短期记忆,用于临时存放运行中的程序数据,断电即清空,容量越大运行越流畅。ROM是"只读存储器",存放系统启动程序等固定数据,断电不丢失。手机宣传中的"ROM"实际指存储空间,这种叫法源于行业惯例。RAM负责运行程序,ROM负责系统引导,两者协同工作保障设备性能。理解这两者的区别,就能看懂手机配置参数的实际意义。原创 2025-10-16 09:57:23 · 1300 阅读 · 0 评论 -
C语言中的预编译是什么?何时需要预编译?
C语言中的预编译是编译前的预处理阶段,主要包括宏定义替换(#define)、文件包含(#include)和条件编译(#ifdef等)三大功能。预编译通过文本替换和条件控制,提高代码灵活性、可读性和维护性。它适用于包含大型稳定代码、多模块程序以及需要优化编译效率的场景。合理使用预编译指令能显著提升开发效率,尤其在大型项目中可减少重复编译,增强代码兼容性。原创 2025-10-14 13:07:56 · 1033 阅读 · 0 评论 -
单片机关于中断的理解
本文通俗易懂地讲解了单片机中断机制的核心概念。通过生活中老板消息插队的例子,形象地说明了中断的四个关键环节:中断源、中断响应、中断服务和中断返回。文章详细介绍了中断的必要性、基本流程、优先级与嵌套规则,以及常见的中断类型。通过51单片机外部中断的代码示例和STM32中断机制补充,帮助读者掌握中断的实际应用。最后强调中断是嵌入式系统处理突发事件的"随叫随到"机制,是提升响应效率的核心技术。全文以生活化场景类比专业术语,使复杂的单片机中断原理变得易于理解。原创 2025-09-11 10:29:37 · 1219 阅读 · 0 评论 -
寄存器是个啥?嵌入式开发中你必须搞懂的小秘密!
本文通俗易懂地讲解了嵌入式开发中的核心概念——寄存器。文章将寄存器比作"超级便利贴",形象地说明它是CPU与硬件交互的桥梁,用于控制硬件状态、读写数据和配置参数。通过控制GPIO灯亮起的实例,展示了如何通过寄存器操作实现硬件控制。文章还介绍了寄存器的二进制结构、分类(控制/状态/数据寄存器),并强调寄存器与RAM的区别。最后建议初学者从开发板和寄存器手册入手,通过实践掌握寄存器操作。全文以生动比喻和实例,帮助读者轻松理解寄存器这一关键概念。原创 2025-08-27 13:49:22 · 581 阅读 · 0 评论 -
轻松理解C语言 static 关键字
工业相机接口类型直接影响图像传输方式,主要分为两类:USB3.0/GigE接口可直接连接计算机使用,适用于大多数工业场景;而CameraLink/CoaXPress等高速接口需要额外图像采集卡,用于处理超高分辨率或高速图像数据,适用于精密制造、医学影像等特殊领域。98%的工业应用无需采集卡,仅高端场景需要配合使用。接口选择取决于项目对传输速度和图像质量的具体需求。原创 2025-08-18 08:46:55 · 373 阅读 · 0 评论 -
轻松理解C语言:位操作
本文介绍了单片机开发中位操作的核心技术与工程实践。从二进制基本概念入手,详细解析了与、或、异或等位运算符的功能及典型应用场景。重点讲解了寄存器操作四件套(置位、清零、翻转、判断)的实现方法,以及字段读写技巧。针对嵌入式开发特点,强调了volatile关键字、原子操作等关键注意事项,并指出位域结构的移植风险。文章还总结了移位运算的常见陷阱和实用位操作技巧,如2的幂判断、数据对齐等,为嵌入式开发人员提供了全面的位操作指南。原创 2025-08-17 09:12:38 · 942 阅读 · 0 评论 -
STM32 延时函数详解
摘要:本文详细介绍了在STM32嵌入式开发中使用SysTick定时器实现精确延时的方法。通过SysTick的24位递减计数器,分别实现了微秒级(Delay_us)、毫秒级(Delay_ms)和秒级(Delay_s)三种精度延时函数。其中微秒级延时直接操作寄存器,精度较高;毫秒和秒级延时通过循环调用实现。文章分析了这种延时方式的优缺点:实现简单但属于阻塞式延时,会占用CPU资源。最后建议在实际项目中可采用定时器中断、RTOS延时或非阻塞轮询等优化方案替代阻塞延时,以提高系统效率。本文为STM32开发者提供了基原创 2025-08-16 09:00:32 · 1870 阅读 · 0 评论 -
详解单片机中的中断机制
本文详细讲解了STM32定时器中断的实现过程。通过初始化代码示例,介绍了定时器中断的工作原理、硬件配置步骤和中断服务程序编写方法。内容包括时钟配置、定时器基准设置、中断优先级配置等关键环节,并提供了完整的中断服务程序示例。文章还展示了主程序如何通过定时器中断实现周期性任务,以及如何通过OLED显示中断触发次数。本示例使用TIM2定时器,采用向上计数模式,通过设置ARR和PSC值实现精确的时间控制,为嵌入式系统开发提供了实用的定时器中断实现方案。原创 2025-08-16 11:00:00 · 1283 阅读 · 0 评论 -
为什么嵌入式系统钟爱MQTT协议
摘要: MQTT协议凭借轻量、低带宽、高效的特点,成为物联网和嵌入式设备通信的首选方案。其核心组件包括客户端和代理,采用发布/订阅模式实现消息传递,支持三种服务质量(QoS)级别确保可靠性。MQTT的优势包括会话保持、遗嘱消息、心跳机制和安全性,特别适合资源受限的嵌入式设备。通过低功耗设计、灵活扩展性和断线重连机制,MQTT在智能家居、远程监控等领域表现卓越,是物联网高效通信的理想选择。(150字)原创 2025-08-15 10:48:56 · 1207 阅读 · 0 评论 -
轻松理解C语言struct结构体
C语言中结构体(struct)是将不同类型数据组合成自定义数据类型的重要工具,广泛应用于嵌入式系统和单片机开发。文章介绍了结构体的基本定义、变量声明与使用方式,重点讲解了结构体指针的访问方法和typedef简化定义技巧。通过实际应用场景(如传感器数据封装、通信协议帧定义、状态机和寄存器映射)展示了结构体的实用价值,最后提醒开发者注意内存对齐、嵌套结构和参数传递等关键问题。全文为嵌入式开发者提供了结构体在硬件编程中的系统化应用指南。原创 2025-08-14 14:49:53 · 680 阅读 · 0 评论 -
轻松理解C语言enum枚举的使用
摘要:C语言的enum关键字用于定义一组有名字的整型常量,限制变量的取值范围,提高代码可读性和可靠性。通过enum可以给常量赋予有意义的名字(如FALSE/TRUE),避免直接使用数字。定义时可用typedef简化类型声明,枚举值可自定义或默认从0递增。典型应用场景包括状态标识(开/关)等,能确保类型安全,防止无效赋值。示例代码展示了如何定义枚举类型、声明变量并进行条件判断,使程序逻辑更清晰直观。原创 2025-08-13 09:30:00 · 996 阅读 · 0 评论 -
掌握C语言中的#define宏定义
本文详细介绍了C语言预处理指令#define在单片机编程中的关键作用。它通过将符号与常量/表达式关联,使代码更易读、维护和修改。文章讲解了宏定义的基本语法、引用方法,并提供了完整代码示例,展示如何定义MAX_SIZE、PI等常用宏及SQUARE(x)函数宏。特别强调了使用括号避免优先级问题的技巧,以及宏在字符串定义、数组大小声明和条件编译中的应用。掌握这些技巧能显著提升代码质量和开发效率,是嵌入式编程的必备技能。原创 2025-08-13 10:30:00 · 1332 阅读 · 0 评论 -
单片机开发中的C语言数据类型
本文详细介绍了C语言中的基本数据类型及其在嵌入式开发中的应用。涵盖char、short、int、long等整数类型及其无符号版本,以及float和double浮点类型,分别说明其位数、取值范围和适用场景。通过示例代码展示了各类型的具体使用方法,包括变量声明、赋值和输出格式。这些知识对于合理分配内存、提高程序效率和正确性至关重要,是嵌入式系统开发的基础核心内容。原创 2025-08-10 08:39:35 · 864 阅读 · 0 评论 -
为什么单片机开发首选C语言?
摘要: 在单片机开发中,C语言因其硬件控制能力强、执行效率高、内存管理灵活等特点成为首选。它能直接操作寄存器、GPIO等硬件资源,生成紧凑高效的机器码,适合资源受限的单片机环境。相比C++(面向对象特性带来额外开销)和C#(依赖高级框架),C语言更贴近底层,便于移植,且拥有丰富的开发工具和社区支持。其简洁语法和精准的内存控制能力使其成为嵌入式开发的核心语言。原创 2025-08-08 11:04:46 · 1380 阅读 · 0 评论 -
单片机中的进制系统:十进制、二进制与十六进制的转换与应用
摘要:本文系统讲解单片机开发中常用的十进制、二进制和十六进制三种数字系统。十进制便于人机交互,二进制是单片机底层操作的基础,而十六进制凭借与二进制的天然4位映射关系(如0x0F=00001111),成为硬件编程的首选表示方式。文章通过端口设置(如P1=0x0F)、地址访问等实例,说明十六进制在寄存器控制、位操作中的优势——简洁(0xFF替代11111111)、对齐硬件结构且符合行业规范。最后提供动态演示工具,直观展示三种进制转换关系。掌握这些转换技巧能显著提升嵌入式开发效率。原创 2025-08-04 11:09:45 · 1638 阅读 · 0 评论 -
STM32 GPIO 中8种配置模式
摘要:STM32单片机的GPIO(通用输入输出口)提供8种配置模式,包括浮空输入、上拉/下拉输入、模拟输入、开漏/推挽输出以及复用开漏/推挽输出。不同模式适用于不同场景:模拟输入用于ADC采集,上拉/下拉输入用于按键检测,开漏输出适合I2C总线,推挽输出可驱动LED等负载。复用模式则专用于外设通信(如SPI/UART)。正确选择GPIO模式是STM32开发的基础,需根据具体应用场景决定,如信号类型、电平要求和通信协议等。原创 2025-08-02 09:49:54 · 1378 阅读 · 0 评论
分享