本帖最后由 一个廿一 于 2026-6-15 16:47 编辑
一、作品简介 本项目设计并实现了一台基于STM32F103C8T6与迪文DGUS智能屏的简易数字示波器。系统可实现0-20Vpp、5-60kHz范围内信号的实时波形显示与参数测量,并附加了基本图形绘制、信息展示及模拟关机动画功能。项目涵盖了模拟前端调理电路、STM32核心控制、迪文屏人机交互及软件算法处理,形成了完整的嵌入式系统闭环。
二、工作原理 系统采用“模拟前端调理 → STM32采集处理 → 迪文屏显示”的架构(系统框图+总体连接)。
1.硬件层面:模拟前端通过分压电阻网络(2:1衰减)将0-20Vpp信号线性衰减至ADC可接受的0-3.3V范围,配合电压跟随器与限幅保护电路,保证信号采集的准确性与安全性。STM32F103C8T6作为主控制器,利用定时器TIM2触发ADC以47.6kHz采样率进行数据采集,DMA循环模式搬运300点/帧至内存。 2.软件层面:主循环采用“双扫描”处理算法(如算法截图)。第一遍扫描找出采样值的最大值与最小值,计算信号平均值作为动态过零点;第二遍扫描以动态阈值为基准进行过零检测,统计上升沿个数估算频率,同时通过软件交流耦合去除直流偏置,实现波形自动居中。处理后的数据通过串口(USART1重映射至PB6/PB7)发送至迪文屏,其中波形数据通过0x82指令写入0x0310(曲线缓冲区控制接口),屏幕自动滚动显示;频率与幅值则分别写入0x6010和0x6020变量地址。
三、设计思路 1.硬件设计:系统采用三层架构。模拟前端通过2:1分压电阻将0-20Vpp信号衰减至0-3.3V,配合电压跟随器与限幅保护电路。主控采用STM32F103C8T6,PA3为ADC输入,TIM2以47.6kHz触发采集,DMA循环搬运300点/帧至内存。通信方面,USART1重映射至PB6/PB7与迪文屏连接。 2.软件设计:采用“双扫描”处理算法。第一遍遍历采样点找最值,计算信号平均值作为动态过零点;第二遍以动态阈值配合滞回窗口进行过零检测,统计上升沿个数估算频率,同时通过软件交流耦合去除直流偏置,实现波形自动居中。处理后的数据通过0x82指令分批发送,波形数据写入0x0310(曲线缓冲区控制接口),频率与幅值分别写入0x6010和0x6020变量地址。 3.创新亮点:采用动态阈值过零检测配合滞回窗口,有效提高频率测量在噪声环境下的抗干扰能力;软件交流耦合实现波形自动居中,无需手动调节直流偏置;DMA流水线使采集、处理、显示三者并行工作,在有限MCU资源下实现了流畅的实时波形显示。
|