本帖最后由 qwertyui 于 2026-6-16 21:33 编辑
一、作品简介 本作品设计并实现了一款基于STM32F103C8T6微控制器与迪文屏T5L的简易数字示波器。系统以STM32F103C8T6为核心,负责接收外部函数信号发生器输出的波形信号,通过片内ADC进行数据采集,并利用软件算法测量波形的峰峰值电压(VPP)与频率。处理后的波形数据及参数结果通过串口(PB6、PB7引脚)发送至迪文屏T5L进行显示。迪文屏采用DGUS软件进行界面开发,配置了动态曲线控件与数据变量控件,能够实时绘制输入波形,并动态刷新VPP与频率数值。 此外,迪文屏还设计了开机动画、主菜单、亮度调节及作品介绍等多个交互界面,用户可通过触控在不同功能页面间切换。 性能指标:可测量3-20vpp、1kHz-60kHz的波形。
二、工作原理
1、信号采集 函数信号发生器输出的波形信号,先经过信号调理电路(分压、钳位、跟随)进行预处理,使其适配STM32的ADC输入范围。
2、数据处理 STM32F103C8T6通过ADC + DMA方式对信号进行高速采样,由软件计算得到VPP(峰峰值电压)和频率(采用周期法或计数法测量)。 stm32的12位ADC采样,再由DMA将采集数据搬运到数组中。 电压测量:ADC转电压、二次电压变换、统计最大值和最小值、统计最大值和最小值、峰峰值计算。 频率测量:寻找信号动态范围、计算中值电平、检测上升沿穿越、频率计算。
3、数据通信 将计算得到的波形点数据、VPP、频率值按照自定义串口通信协议打包,通过 PB6、PB7 串口引脚发送给迪文屏T5L。
4、显示交互 迪文屏T5L通过DGUS软件配置的动态曲线控件和数据变量控件,包括动态绘制实时波形、显示VPP和频率数值、支持用户触控切换界面(开机动画 → 主菜单 → 波形显示 / 亮度调节 / 作品介绍)。 三、设计思路
本作品基于立创开源广场上的开源简易数字示波器项目设计,在开源项目的基础上加入了串口通信、迪文屏写动态曲线、迪文屏写字等功能以实现与迪文屏的通信。 本设计以STM32F103C8T6为主控芯片,其外围电路主要包括信号调理电路、串口通信电路及电源电路。 由于STM32内部ADC的输入电压范围为0~3.3V,而外部信号源输出的波形可能存在负电压或超过3.3V的幅值,因此需要在ADC采样前加入信号调理电路。STM32与迪文屏之间通过串口进行通信,使用PB6(USART1_TX)和PB7(USART1_RX)引脚。由于两者均为TTL电平,可直接连接,无需电平转换芯片。 本设计的PCB基于立创开源广场的开源项目进行修改,去除了原来的显示屏,将连接他的接口用来连接迪文屏。最终实现了从单片机接收信号,然后传输到迪文屏显示的过程。
|