迪文科技论坛

 找回密码
 立即注册
搜索
查看: 17|回复: 0

【分享】雷步鑫 吴荣强 基于STM32和迪文屏的简易示波器

[复制链接]

0

主题

0

回帖

37

积分

新手上路

Rank: 1

积分
37
发表于 前天 14:42 | 显示全部楼层 |阅读模式
本帖最后由 一个廿一 于 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资源下实现了流畅的实时波形显示。

演示视频:链接:https://pan.baidu.com/s/1o3JlaumAfafb49YwuEmk5Q  提取码: uiop






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2026-6-17 16:17 , Processed in 0.076773 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表