- 博客(13)
- 收藏
- 关注
原创 实战 TPS65400:从硬件设计到软件开发的全流程指南
本文详细解析了TI公司TPS65400四路降压稳压器PMU的应用设计。该芯片具有4.5V-18V宽输入范围、最高4A输出电流、275kHz-2.2MHz可调开关频率等特性,支持PMBus/I2C接口编程配置。文章从硬件设计(包括输入滤波、反馈电阻计算、PCB布局)、基于STM32的软件驱动开发(寄存器配置、电压调节、保护机制实现)到实际应用问题排查进行了全面阐述,重点解决了反馈网络设计、低温启动异常等典型问题,为工业级嵌入式系统的电源管理提供了完整解决方案。
2025-11-03 11:30:43
859
原创 STM32高级按键处理方案:中断+定时器非阻塞检测,实现毫秒级响应与长按识别
本文介绍了一种基于STM32的高级按键处理方案,通过GPIO中断和定时器非阻塞检测相结合的方式,解决了传统按键处理存在的响应延迟、CPU资源浪费、长按识别困难等问题。该方案采用硬件中断触发(5ms定时器)和软件消抖处理,实现了毫秒级响应(<1ms)、精准长按识别(5ms精度)、多按键同时处理等特性。相比传统轮询方式,在响应速度、实时性、功能性和能效比方面都有显著提升,特别适合对用户体验要求较高的嵌入式产品。测试表明其响应时间<100μs,长按误差<±5ms。
2025-09-22 15:50:17
678
原创 【STM32CubeIDE实战教程】FreeRTOS任务通知的全面指南(附代码示例)
任务通知是FreeRTOS提供的一种直接向特定任务发送事件或数据的机制。每个任务都有一个32位的通知值(notification value)和一个通知状态(notification state),可以直接被其他任务或中断服务程序修改。FreeRTOS任务通知提供了高效、灵活的任务间通信机制,特别适合在资源受限的STM32项目中替代传统的队列、信号量和事件组。通过本文的详细讲解和实验示例,您应该能够:理解任务通知的工作原理和优势掌握各种通知API的使用方法在实际项目中合理应用任务通知。
2025-08-25 16:49:49
899
原创 【STM32CubeIDE实战教程】FreeRTOS软件定时器的全面指南(附代码示例)
本文介绍了FreeRTOS软件定时器在STM32CubeIDE中的应用。软件定时器基于系统节拍实现,具有低资源占用、灵活配置等特点,适用于数据采集、超时检测等场景。文章详细讲解了定时器的创建、启动、停止等API函数,并通过实验演示了周期性和单次定时器的实现。同时指出了使用注意事项,如回调函数应简短、合理设置优先级等,并针对常见问题提供了解决方案。通过STM32CubeIDE的图形化配置,开发者可以高效地集成软件定时器功能,为嵌入式系统提供灵活的定时机制。
2025-08-19 15:40:19
1218
原创 【STM32CubeIDE实战教程】FreeRTOS事件组的全面指南(附代码示例)
事件标志组是FreeRTOS提供的一种任务间通信机制,它允许任务等待一个或多个事件的发生。每个事件由一个位(bit)表示,因此一个事件组可以同时跟踪多个事件的状态。//函数原型//示例// 创建失败处理#define KEY1_OK_BIT (1 << 0) //设置事件掩码的位0#define TEMPERATURE_OK_BIT (1 << 1) //设置事件掩码的位1#define PRESSURE_OK_BIT (1 << 2) //设置事件掩码的位2。
2025-05-05 17:00:19
1037
原创 【STM32CubeIDE实战教程】:FreeRTOS优先级反转实验与互斥锁优先级继承/优先级天花板解决方案
互斥锁(优先级继承)的局限性4.1 能解决的问题基本优先级反转:通过动态提升持有锁的低优先级任务的优先级,避免被中优先级任务抢占。自动管理:FreeRTOS内置的优先级继承机制无需开发者手动干预。4.2 不能完全避免的情况嵌套锁:多个互斥锁嵌套使用时,可能形成复杂的优先级提升链,仍可能导致阻塞。// 任务A(优先级3)等待锁X → 任务B(优先级2)持有X并申请Y → 任务C(优先级1)持有Y// 此时任务A仍会被间接阻塞死锁风险:不当的锁获取顺序可能导致死锁(优先级继承无法解决逻辑错误)。
2025-04-30 10:48:05
1492
原创 【STM32CubeIDE实战教程】:FreeRTOS二值信号量与计数信号量详解(附代码示例)
本文基于STM32CubeIDE开发环境,全面解析FreeRTOS中二值信号量与计数信号量的核心原理、应用场景及实战技巧。通过。
2025-04-29 18:36:32
949
原创 【STM32CubeIDE实战教程】:FreeRTOS消息队列详解(附代码示例)
通过CubeMX配置+手写代码结合的方式,演示任务间通信的典型场景,并给出内存优化建议。图解步骤:Tasks配置 → 添加队列 → 设置队列长度/项大小(本文创建两个任务,一个任务用于发送消息给消息队列,另外一个任务从消息队列中接收消息):发送任务,每隔100ms向消息队列发送一次信息,Led闪烁→ 通过队列发送 → 处理任务接收并打印。A:不可以,创建操作涉及内存分配,应在任务初始化阶段完成。:全局变量共享的风险(数据竞争、耦合度高):解耦任务、线程安全、灵活的超时机制。STM32CubeMX创建工程。
2025-04-27 10:00:49
995
原创 【STM32CubeIDE实战教程】FreeRTOS动态任务创建详解(附完整代码示例)
接上篇,本文将介绍FreeRTOS动态创建任务,环境以及时钟配置均和上篇文章相同。
2025-04-15 15:06:54
438
原创 【STM32CubeIDE实战教程】FreeRTOS静态任务创建详解(附完整代码示例)
在嵌入式RTOS开发中,FreeRTOS因其开源免费、轻量级等特点成为STM32开发者的首选。而静态内存分配方式相比动态分配,具有确定性高、内存泄漏风险低等优势,特别适合资源受限的嵌入式系统。本文将手把手教您在STM32CubeIDE环境中创建FreeRTOS静态任务。静态内存分配虽然需要开发者手动管理内存,但在关键任务系统中能提供更好的确定性和可靠性。建议在医疗设备、工业控制等对稳定性要求高的场景优先采用静态分配方案。后续会继续分享关于FreeRTOS在STM32CubeIDE上的配置,你我共勉!
2025-04-15 13:57:10
863
原创 STM32串口DMA收发数据详解 | 高效传输与实战代码
DMA是STM32高性能开发的必备技能,合理使用可大幅提升系统效率。本文代码已通过实测,可直接使用。
2025-02-13 11:13:44
3520
2
原创 STM32串口配置485通讯实验
RS-485是一种使用差分信号进行串行通信的标准,适用于长距离和抗干扰的环境。由于具备多点通信的能力,它被广泛应用于工业控制和自动化领域。在STM32中,通过UART模块可以轻松配置485通讯。在本实验中,我们介绍了如何使用STM32配置串口进行RS-485通讯。通过STM32CubeMX的配置和相应的代码实现,实现了基本的数据发送与接收功能。这个实验为后续更复杂的通信系统搭建奠定了基础。希望这篇文章对你有所帮助!如果有任何问题或建议,请在评论区留言。串口DMA中断模块具体如何配置后续会有专门的篇章发出。
2025-02-08 17:18:11
3289
1
原创 STM32读取倒车雷达时序图
汽车雷达是现代自动驾驶和高级驾驶辅助系统(ADAS)中的关键传感器之一。它通过发射电磁波并接收反射信号来检测周围物体的距离、速度和方位。雷达的时序图是分析雷达信号的重要工具,能够帮助我们理解雷达的工作状态和信号特征。本文将介绍如何使用读取汽车雷达的时序图,并通过串口将数据上传到上位机进行可视化分析。
2025-02-07 17:23:16
591
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅