自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 收藏
  • 关注

原创 DMA注意事项

摘要 RS-485通信的稳定性依赖硬件和软件的协同设计。硬件层需注意方向控制引脚(DE/RE)的严格管理,避免悬空;总线末端需加120Ω终端电阻,长距离通信建议增加偏置电阻和共地处理。软件层的关键是DMA与方向控制的严格同步:发送前先拉高DE并短暂延时,DMA传输完成后需等待UART发送完成中断再拉低DE,避免数据丢失。接收推荐使用DMA循环模式配合空闲中断高效解析数据。策略层需设计超时机制、帧校验和重发逻辑,确保通信可靠。调试时建议用逻辑分析仪观察DE与数据时序。

2025-09-09 21:45:57 486

原创 串口数据收发的设计

DMA+空闲中断相比单字节中断+定时器在接收100字节数据时具有显著优势:传输时间均为8.68ms,但DMA方式仅需7μs中断处理时间(0.08% CPU占用),而单字节方式需2.56ms处理时间(22.8% CPU占用)。DMA方式总耗时8.687ms,比单字节方式的11.24ms快约2.55ms,CPU占用降低99.6%,中断频率降低100倍,大幅提升系统效率和实时性。

2025-09-09 21:17:39 1004

原创 从零开始设计一台7kw光储一体机

市场上已有众多成熟的7kW光储一体机产品(如格力、固德威、德业等品牌)。除非有特殊的定制化需求或出于学习研究目的,否则直接采购现有产品是更经济高效的选择。设计一台7kW光储一体机是一个庞大的系统工程,涉及电力电子、嵌入式软件、结构、热设计等多个学科领域。希望这个从零开始的设计框架能为您提供一个清晰的路线图!这是机器的“灵魂”,复杂度不亚于硬件。

2025-09-04 14:58:03 609

原创 储能变流器之能量流动

摘要: 储能变流器(PCS)是光储系统的核心,通过智能调度光伏、电池、负载和电网四大端口的能量流动,实现经济高效、安全可靠的能源管理。

2025-09-01 10:38:22 861

原创 储能变流器之LLC

储能变流器(PCS)中,LLC谐振变换器凭借高效率、高功率密度和电气隔离特性,成为隔离DC/DC变换的核心选择。

2025-08-29 16:21:44 1250

原创 嵌入式筑基之设计模式

嵌入式多任务通信设计模式摘要:实时系统(RTOS)中应优先使用系统提供的通信原语。1)生产者-消费者模式:最常用,通过队列/环形缓冲区实现异步数据传递,适用于数据采集等场景;2)观察者模式:通过事件标志组或消息总线实现一对多通信,适合状态通知;3)黑板模式:共享内存+互斥锁实现高效数据共享,但风险较高;4)中介者模式:通过专用任务协调复杂通信。建议优先使用队列和事件标志组,避免无保护全局变量,根据通信方向、数据量等选择合适模式。队列和事件组可解决95%的通信需求。

2025-08-28 09:13:09 657

原创 储能变流器学习之MPPT

摘要: MPPT(最大功率点追踪)是光伏发电和储能系统的关键技术,通过动态调节工作点使系统始终输出最大功率。

2025-08-27 15:50:05 1529

原创 嵌入式筑基之HEX文件格式解析

摘要: HEX文件是嵌入式开发中常用的ASCII文本格式二进制数据载体,包含数据、地址、记录类型和校验信息。

2025-08-27 09:07:30 890

原创 嵌入式筑基之volatile

本文深入解析嵌入式开发中volatile关键字的核心作用与使用场景。它如同嵌入式系统的"免疫系统",防止编译器优化导致程序异常。主要应用于:1)硬件寄存器访问,确保每次读取真实状态;2)中断服务程序共享变量,保证主程序能获取最新值;3)多线程共享数据;4)特殊内存区域。

2025-08-08 09:54:19 626

原创 嵌入式筑基之大端小端传输

嵌入式开发中,大端(Big-Endian)和小端(Little-Endian)的选择取决于系统架构和协议要求。大端在网络协议(如TCP/IP)、工业总线和调试中更具优势,数据存储更直观;小端则被主流CPU(ARM、x86)原生支持,类型转换和运算效率更高。开发时需通过字节序检测和转换函数确保兼容性,网络通信优先大端,本地处理可随CPU使用小端。核心原则是遵守硬件规范并通过抽象层处理差异。

2025-08-04 15:52:08 482

原创 嵌入式筑基之STM32启动流程

STM32微控制器的启动流程是嵌入式系统稳定运行的关键,涉及硬件自动初始化和软件配合。标准启动流程包括复位后的硬件初始化、数据段处理和跳转main()函数。在OTA升级场景中,Bootloader与应用程序的切换需要特别注意内存布局、向量表重定向和跳转机制。

2025-08-01 16:59:53 1247

原创 嵌入式筑基之MAP文件解析

MAP文件不是编译过程的副产品,而是工程师与硬件对话的核心语言。从预判芯片资源瓶颈在Memory Map中发现内存冲突通过定位"内存怪兽"你便拥有了在资源受限的嵌入式世界里挥斥方遒的资本——让每一字节内存都物尽其用,让每一毫秒CPU周期都不被浪费。附录:常用分析命令。

2025-07-30 15:32:00 923

原创 C#浮点数精度误差解决

原因现象解决方案浮点数精度损失1.14→~1.1399999使用decimal替代doublebyte转换截断113.9999→113先四舍五入再转换区域小数点格式差异可能解析失败(如分隔)指定。

2025-07-29 10:44:48 468

原创 嵌入式筑基之函数存储分配

摘要:本文深入探讨STM32嵌入式开发中的函数存储优化策略,分析了默认Flash存储特性及RAM加速技术。

2025-07-21 10:45:52 1021

原创 嵌入式筑基之全局变量内存管理

/ 推荐:真常量使用const// 避免:伪常量占用RAM#define PI3.14159f// 推荐:真常量使用const const float PI = 3.14159f;// 避免:伪常量占用RAM # define PI 3.14159f // 可能降低可调试性变量类型适用场景避坑要点普通全局变量多模块共享的临时数据避免滥用导致耦合度高static变量文件内私有状态保持注意复位后初始化问题const常量固定参数/配置表不可用于需修改的数据自定义段变量需持久化的大数据块。

2025-07-17 19:42:46 852

原创 嵌入式调试笔记之FreeRTOS队列发送数据内存对齐

介绍FreeRTOS队列操作中数据类型不匹配会导致严重问题,并提出解决办法

2025-07-15 17:29:16 609

原创 嵌入式筑基之内存对齐

讨论嵌入式软件开发的内存对齐

2025-07-14 19:10:33 816

原创 高级嵌入式开发之依赖倒置

摘要:嵌入式C开发通过依赖倒置原则(DIP)实现硬件解耦,核心是:1)用函数指针和结构体定义抽象接口;2)高层业务逻辑依赖抽象而非具体实现;3)通过初始化注入不同硬件驱动。典型实现包括LED控制接口抽象、STM32/ESP32多平台支持,具备硬件可移植、模块化测试、并行开发等优势。该模式适用于传感器、通信模块等场景,更换硬件只需重写驱动实现,业务逻辑无需修改,有效提升代码复用性和可维护性。(148字)

2025-07-07 22:26:05 664

原创 嵌入式筑基之函数指针

函数指针在STM32嵌入式开发中具有重要作用,可实现回调机制、动态行为切换和模块解耦。其核心应用包括HAL库回调、事件驱动框架、状态机实现、驱动抽象层等场景。使用时需注意空指针检查、类型匹配和性能影响,在STM32中广泛应用于HAL库回调、RTOS任务钩子等场景,可显著提升代码灵活性和可维护性。掌握函数指针技巧有助于优化嵌入式系统设计。

2025-06-23 01:12:05 484

原创 嵌入式学习之原子操作

摘要:原子操作在STM32等嵌入式系统中至关重要,它确保对共享资源(如全局变量、外设寄存器)的访问在并发环境下不被中断打断,防止数据竞态和逻辑错误。原子操作的核心特性是不可分割性和隔离性,常用于保护标志位、计数器或寄存器配置。实现方法包括关中断、Cortex-M硬件指令(如LDREX/STREX)或RTOS提供的API。使用时需注意:临界区尽量短、避免阻塞调用、正确使用volatile关键字,并区分原子操作与互斥锁的适用场景。优先采用库或RTOS的同步机制以确保安全性和实时性。

2025-06-12 10:47:38 2013

原创 BMS学习之AFE

AFE芯片虽小,却是电池安全的“守门人”与性能优化的“指挥官”。在迈向电气化的浪潮中,AFE将持续进化,为更安全、更持久的能源未来保驾护航。作为电池管理系统(BMS)的核心感知中枢,默默地守护着每一次充放电的安全与高效。它如同电池的“精密感官”,实时捕捉电压、电流、温度的细微变化,为BMS的智能决策提供关键数据支撑。在动力电池/储能系统中,优先选用通过ASIL-D(AEC-Q100)认证的AFE芯片(如NXP MC33775),确保功能安全合规性。在锂电池无处不在的今天,

2025-06-05 09:51:58 3253

原创 BMS学习之SOC

SOC估算方法概述 SOC(State of Charge)是衡量电池剩余电量的关键参数,直接影响电池管理系统的性能。其核心计算方法包括: 库仑积分法:通过实时电流积分估算电量变化,简单但易累积误差; 开路电压法(OCV):利用电压-SOC对应关系校准,精度高但需静置; 卡尔曼滤波:结合电池模型动态修正,抗干扰能力强; 机器学习:基于数据训练模型,适应复杂工况。 实际应用中需考虑温度、老化等因素,常采用多方法融合策略(如OCV+卡尔曼滤波)提升精度。示例代码展示了磷酸铁锂电池的SOC估算实现,结合库仑积分和

2025-05-24 11:16:28 4052

原创 嵌入式调试笔记(STM32)

在调试逆变器和BMS通讯的过程中发生接收错误,总线繁忙。

2025-03-29 11:18:58 982

原创 储能变流器涉及的电路知识总结

BUCK-BOOST电路是一种综合了BUCK和BOOST功能的开关电源转换电路,可以根据需求降低或升高输入电压,实现多种输出电压需求。LLC电路,全称为LLC谐振转换器,是一种高效的开关电源电路,广泛应用于需要高频、高效率能量转换的场合。BOOST电路是一种升压型开关电源转换电路,主要用于将低输入电压转换为较高的输出电压。BUCK电路是一种降压型开关电源转换电路,主要用于将高输入电压转换为较低的输出电压。LLC电路的控制主要通过调节开关器件的开关频率和占空比来实现输出电压的调节。

2025-03-02 16:36:47 2805

原创 基于C#语言的winform框架开发上位机串口助手

上面是窗体框的上边框样式,下面是一个tabControl控件,tabpage里面用splitcontainer当容器,放置控件如图所示。使用控件有如下,有不了解的问ai相关属性组合框 (ComboBox): 用于选择串口和波特率设置。文本框 (TextBox): 用于输入数据,如发送内容和周期时间。单选按钮 (RadioButton): 选择数据格式(ASCII或HEX)。单选按钮 (RadioButton): 选择数据格式(ASCII或HEX)。

2025-01-02 22:44:53 584

原创 嵌入式调试笔记之Ymode协议

摘要:本文介绍了Ymode协议传输Bin文件的调试经验及流程。Ymode传输主要包括连接初始化、数据封装、发送接收和确认响应等步骤,并通过实例展示了文件传输过程(如4196字节的foo.c文件)。协议采用SOH/STX帧头区分128/1024字节数据块,包含序号、取反序号及CRC校验。起始帧、数据帧和结束帧格式清晰,支持重传机制,适用于单片机升级或大文件传输。参考链接提供了Ymodem协议的详细解析。

2025-01-02 19:49:02 1116 2

原创 C#串口通信上位机笔记(modbus协议)

记录自己工作的上位机经验,方便自己复习和使用提示:以下是本篇文章正文内容,下面案例可供参考例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2024-06-18 08:46:58 619

原创 ModbusRTU(485)详细笔记

Modbus协议的简要介绍

2024-06-09 01:23:49 14530 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除