- 博客(8)
- 收藏
- 关注
原创 在keil中为什么不勾选微库 (MicroLib)使用printf()会程序卡死?
摘要:Keil MDK的微库(MicroLib)是为嵌入式系统优化的精简C库,相比标准库减少30-50%代码量,不依赖操作系统和动态内存分配。关键区别在于标准库依赖半主机机制进行调试输出,当独立运行时会导致程序卡死;而微库通过用户实现的fputc函数直接驱动硬件,避免了这一风险。使用微库需实现串口重定向函数,并注意printf可能带来的实时性和内存问题。在调试阶段可使用标准库,但产品发布时必须改用微库或禁用半主机。开发者应根据实际需求选择printf格式化输出或直接串口发送方案。
2025-12-11 14:34:11
785
原创 为什么硬件SPI很难实现PS2手柄通信,而软件SPI却很简单?
嵌入式开发中,硬件SPI无法驱动PS2手柄而软件SPI能成功的原因在于协议差异。PS2协议虽表面类似SPI,但存在三大关键区别:1)采用单线双向半双工通信,而非标准SPI的双线全双工;2)有严格的微秒级时序要求;3)需要动态切换数据方向。硬件SPI的固定引脚方向、连续传输特性和时钟刚性使其难以满足这些特殊需求,而软件SPI通过GPIO模拟可以精确控制每个信号时序,灵活处理方向切换和异常恢复,从而成功驱动PS2手柄。这体现了在嵌入式开发中,协议适配比单纯追求硬件性能更重要。
2025-12-05 14:01:11
863
原创 HAL库中的“句柄”到底是什么?
摘要:STM32 HAL库中的句柄是管理外设的核心结构体指针,如UART_HandleTypeDef包含外设寄存器基地址、配置参数和状态信息等关键成员。通过句柄(如huart1)实现外设操作,HAL库函数利用Instance指针访问具体外设寄存器,Init结构体保存初始化参数,其他成员支持中断/DMA传输。使用流程包括定义句柄变量、初始化配置和调用HAL函数操作外设。句柄机制提高了代码封装性、多实例支持、状态管理和跨芯片移植能力,是HAL库抽象硬件的重要设计。
2025-11-24 20:25:16
646
原创 嵌入式中ADC电压采集除了电阻分压外还能怎么做?
摘要:本文介绍了扩展ADC测量范围和提高测量性能的多种方法。针对高电压或负电压测量,可采用运放电路(同相/反相放大器、减法器、求和电路)、可编程增益放大器(PGA)或专用模拟前端(AFE)芯片。为提高精度和抗干扰能力,推荐差分测量和Σ-Δ型ADC。在需要电气隔离的场景,可采用隔离式ADC、调制器+数字隔离器或电压频率转换方案。对于简单阈值检测,比较器电路是经济高效的选择。文中还提供了STM32的代码示例,展示如何实现电平移位和比较器应用。
2025-11-24 19:55:58
550
原创 如何将编码电机的脉冲值转换成小车转速(RPM)以及速度(m/s)
基于STM32单片机,通过编码电机实现小车运动状态的精确测量,包括速度、距离和方向检测。
2025-11-23 18:04:48
472
原创 如何让电机速度“稳如老狗”?编码器PID闭环控制算法详解
PID代表比例(Proportional)、积分(Integral)、微分(Derivative),是一种基于当前误差、过去误差的累积以及未来误差变化趋势来生成控制量的算法。②增量式PID由位置式PID推导得到,每次计算得到的是输出值的增量,如果直接给到被控对象,则需要被控对象内部有积分功能。④位置式PID和增量式PID计算时产生的中间变量不同,如果对这些变量加以调节,可以实现不同的特性。根据这个误差计算出控制量(通常为PWM占空比),驱动电机向减小误差的方向运动,从而形成一个闭合的负反馈回路。
2025-11-23 17:39:08
1128
原创 蓝桥杯嵌入式-核心模块汇总
这是我对蓝桥杯嵌入式(STM32G431RBT6)核心模块的代码框架梳理,由于代码细节较多,文中难免存在疏漏或错误。如果您在参考过程中发现任何问题,恳请在评论区不吝指正,也欢迎大家一起交流讨论!
2025-11-09 19:58:36
354
原创 如何在windows下部署YOLOv5
网站输入:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/网站输入:https://github.com/ultralytics/yolov5。注:关掉机场以及避免使用校园网,最好使用5G流量进行下载。
2025-08-28 17:49:48
224
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅