- 博客(8)
- 收藏
- 关注
原创 嵌入式数字滤波器一文搞懂?超详细原理+代码讲解
本文介绍了嵌入式系统中两种常用的数字滤波器实现方法:滑动平均滤波器和指数加权移动平均(EWMA)滤波器。滑动平均滤波器通过维护固定窗口内的采样值累加和,利用位移运算代替除法,实现了高效计算。EWMA滤波器采用整数近似实现,通过余数累积法解决了截断误差问题。两种方法各有特点:滑动平均更稳定但响应慢,EWMA计算更快但存在截断误差。文章详细分析了两种滤波器的原理、数据结构、算法实现及优化技巧,包括位移运算替代除法、溢出风险分析、整数近似处理和误差补偿方法,为嵌入式系统信号处理提供了实用解决方案。
2026-04-28 23:09:01
492
原创 GitHub 批量上传文件问题及解决方法
GitHub网页端对单次上传文件数量有限制(约100个),建议分批上传或使用Git工具。Git工具上传没有数量限制且支持版本控制,安装Git后通过克隆仓库、添加文件、提交更改等步骤即可完成上传。首次使用Git需配置用户名和邮箱。日常开发中只需运行git add、git commit和git push三个命令更新项目。
2026-03-10 22:35:09
644
原创 STM32F407ZGT6 内存管理详解:栈与堆
本文深入解析STM32F407ZGT6栈与堆的作用、配置及常见问题。栈用于函数调用和局部变量,堆支持动态内存分配,需警惕溢出与泄漏。提供调整方法、调试技巧及静态内存优化策略,保障系统稳定
2025-03-16 23:33:44
1085
原创 STM32F103C8T6核心板BOOT启动模式详解
STM32F103C8T6的BOOT模式由BOOT0/1引脚配置,支持主Flash运行、系统存储器固件升级及SRAM调试,适用于开发调试、固件恢复和量产部署,需正确配置确保稳定运行。
2025-03-16 18:42:14
8737
原创 Keil编译内存深度解析:STM32开发中的Code/RO/RW/ZI
本文以STM32F407ZGT6为例,剖析Keil编译结果的Code、RO-data、RW-data、ZI-data参数含义,详解Flash与RAM存储分配机制,探讨ZI-data过高的影响及优化方法,帮助开发者合理规划嵌入式系统存储资源。
2025-03-15 14:39:15
1793
原创 PS2手柄与STM32F407ZGT6通信 一些必须注意问题
PS2手柄控制STM32问题排查与解决 在移植PS2手柄与STM32通信代码时,遇到以下异常现象: 手柄模式切换失效(无法切换红灯模式) 继电器响应延迟且会误触发 通过代码分析发现: 硬件连接正常(接收器/手柄绿灯常亮) 通信协议处理正确(完整代码已展示) 根本原因:主循环中缺少必要的延时处理。未添加delay_ms(20)时,PS2数据持续高速传输导致数据错乱。 解决方案: 在main.c的while循环中增加20ms延时,使手柄数据稳定读取。修改后: 模式切换功能恢复正常 继电器响应即时准确 操作延迟问
2024-01-16 16:00:48
2481
2
原创 STM32C8T6 新建工程
stm32的程序都是从启动文件开始执行的(启动文件可根据Flash的大小选择)固件库中的stm3210x.h文件是stm32外设寄存器描述文件(与51的头文件REGX52.H一样),用来描述STM32有哪些寄存器和它对应的地址的;system文件主要是用来配置时钟的;由于STM32由内核和内核外围的设备组成的的,并且内核和外围的描述文件不是一个,需要添加内核描述文件cm3(Cortex-M3)
2023-11-17 20:48:27
242
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅