基于STM32F103的简易示波器设计,采用正点原子MINI开发板,使用ADC 定时器 DMA 中断 FFT算法等外设,可以显示波形,频率,幅值等采样率可调 您所在的位置:网站首页 stm32f103串口中断程序 基于STM32F103的简易示波器设计,采用正点原子MINI开发板,使用ADC 定时器 DMA 中断 FFT算法等外设,可以显示波形,频率,幅值等采样率可调

基于STM32F103的简易示波器设计,采用正点原子MINI开发板,使用ADC 定时器 DMA 中断 FFT算法等外设,可以显示波形,频率,幅值等采样率可调

2023-04-22 15:15| 来源: 网络整理| 查看: 265

本设计采用STM32F103微控制器,硬件为正点原子的MiniSTM32开发板,设计一个示波器,能够测量输入信号的频率、最大值、最小值和幅值,并显示所输入的波形。并且采样频率可以设置,并能通过串口输出所测量的内容。采用FFT算法计算频率,精度较高。所用到的硬件模块有ADC、定时器、UART、外部中断、DMA、GPIO、EXTI。

获取工程程序源码 设计文档 企鹅号 3270516346实物测量

CSND设计文档

设计文档.docx4.1M · 百度网盘

一、设计内容与设计方法

1.1、设计内容与要求

1、由于STM32采用3.3V的电平标准,所以输入的信号电压范围为0V到3.3V。

2、采集输入的信号,计算输入信号的频率、最大值、最小值和幅值。

3、由于所测量的频率的范围与采样的频率有关,所以采样频率可以设置,以达到不同的要求。

4、计算的信号的内容可以通过串口打印出来。

1.2.设计思路

1、通过ADC1模数转换模块,采集输入的模拟信号,通过定时器的PWM输出触发一次采样,所以采样频率可以通过定时器设置。将ADC采样的数据通过DMA的方式送到指定的内存中去。

2、将采样得到的数据通过循环比较得到最大值和最小是,两者相减得到信号幅值。将得到的采样数据进行FFT变换,然后在进行一系列的计算得到信号的频率。

3、通过UART1将得到的信号计算内容发送的PC,波特率可以设置。采样率的设置以及串口输出的设计通过外部中断(外部按键)设置。

4、设置开发板自带的LED灯,通过LED灯来指示系统是否工作。

5、将输入信号的波形以及计算结果在LCD屏幕上显示出来,LCD显示采用正点原子提供的LCD驱动函数。

二、硬件设计2.1、STM32最小系统设计

1、采用的微控制器为STM32F103RCT6,该微控制器采用Cortex-M3体系结构,它拥有的资源包括: 48KB SRAM、 256KB FLASH、 2 个基本定时器、 4 个通用定时器、 2 个高级定时器、 2个 DMA 控制器(共 12 个通道)、 3 个 SPI、 2 个 IIC、 5 个串口、 1 个 USB、 1 个 CAN、 3 个 12位 ADC、 1 个 12 位 DAC、 1 个 SDIO 接口及 51 个通用 IO 口分三组,该芯片性价比较高。

2、该系统采用外部晶振作为时钟源,外部晶振频率为8MHz,通过内部PLL等电路设置系统频率为72MHz。,系统电源采用3.3V供电,DAC的参考电压设置为5V。

3、复位端外界一个按键,即RESET按键接到单片机的NRST端,当按下该按键时,系统复位。下载电路采用JTAG下载。

4、本次设计用到的内部资源有:SRAM、FLASH、通用定时器2,DMA1,UART1,DAC1,GPIOA、EXTI。

5、最小系统电路图为:

最小系统电路图2.2、LED显示与外部中断按键电路

1、LED显示控制端为GPIOA_Pin_8,LED的阳极通过保护电阻接电源,阴极连接到GPIOA_Pin_8,该端口采用推挽输出,输出高电平时LED灭,输出低电平,LED亮。

2、按键连接电路如图所示,WK_UP按键连接到PA0,KEY0连接到PC5,KEY1连接到PA15,他们分别对应外部中断通道0、通道5、通道15。通道0的中断为上升沿触发,通道5和15为下降沿触发。

LED与按键电路2.3、LCD显示屏接口电路

1、LCD显示屏我们采用的为2.8寸屏,分辨率为320*240,支持65K色显示,接口为16位的80并口,自带触摸屏,TFTLCD 模块采用 2*17 的 2.54 公排针与外部连接。

2、LCD控制芯片采用ILI9341,ILI9341液晶控制器自带显存,可以通过不同的命令在LCD的不同位置显示不同的颜色,从而显示图像。

3、开发板上自带LCD显示屏接口,直接将开发板与LCD相连即可,其接口电路如下图:

TFT_LCD接口电路

三、软件设计

3.1、软件设计总体流程

1、主函数执行过程

2、当按键KU_UP按下时,定时器分频系数增加,采样率减小;当按键KEY1按下时定时器分频系数减小,采样率增加;当KEY0按下时,通过串口发送数据到PC机。

3、信号采集采用ADC+DMA+TIMER的方式,采集完成,触发DMA中断,采集完成标记位置位。

3.2、按键中断设计

1、KW_UP、KEY1、KEY2对应的引脚PA0、PC5、PA15,对应的中断触发条件为信号上升沿、下降沿、下降沿。PA0设置为输入下拉,PC5和PA15设置为输入上拉,设置前首先开启时钟,对应程序为:

2、PA0、PC5、PA15对应的中断通道为通道0、5、15,外部中断配置响应的模式并使能,然后配置响应的NVIC并使能NVIC,他们对应的抢占优先级都为2,副优先级为0、1、2,相应代码为(以通道1为例):

3、在他们的中断服务函数中,先判断相应的按键是否按下,按下则执行相应的功能,然后清楚相应的外部中断,程序如下(以K0为例):

3.3、TIMER+DMA+ADC1组成的数据采集模块

1、本实验用PA1口做为数据采集端口,定时器2配置为PWM模式,通过PWM,触发一次采样,改变PWM的频率,就可以改变采样率。通过DMA1,将采集的数据传送给内存,然后在处理数据。

2、首先使能GPIOA与ADC1的时钟,然后将PA1配置为模拟输入。ADC1选择通道1使用规则转换,配置为连续转换模式,触发方式选择T2_CC2,即定时器2,数据选择右对齐,规则顺序转换的通道数目为1,采样时间设置为cycles。

 ADC1设置完成之后,使能DAC1,并且重置指定ADC的校准寄存器进行校准。设计程序为:

3、首先使能定时器的时钟,计数器2的预分频值与计数值通过外部参数传入,可以设置,从而设置频率,计数器设置为向上计数方式。输出设置为PWM1,输出极性为低,并且设置TIM_Pulse,来设置占空比。最后使能TIM2.程序如下:

4、使用DMA1的通道1,首先开启DMA1的时钟,将ADC1的数据传入内存,设置一次传输数据量为1024个字,内存和外设的数据位数都为16位,循环传输,优先级设置位最高。

开启DMA1的中断,当一次DMA传输完成时,响应中断,在中断服务函数中通知一次数据采样完成,抢占优先级与副优先级都设置为0。

相关程序如下:

3.4、UART设置

1、通过UART1将相应的数据打印出来,UART1对应的端口为PA9、PA10。根据参考手册,PA9应该设置为复用推挽输出,PA10设置为浮空输入。

初始化UART1,首先开启GPIOA和UART1的时钟,然后设置字长为8位,一个停止位,无奇偶效验位,无硬件数据流,波特率可设置。相关程序如下:

2、重定向函数printf(),在工程中加入fputc(int ch,FILE *f)函数代码,并包含“stdio.h”,即可通过printf()进行串口发送数据。

3.5、FFT计算频率

1、我们一次连续采样1024个点,对这些点利用提供的FFT库函数进行离散傅里叶变换,变换后从频谱中找出最大的频率,该频率即为采样信号的频率。由采样定理可知,采样信号的频率要大于所采集信号频率的两倍才能恢复出信号的频谱,求得最大频率。

2、采样信号的频率为fus=72000000/(T*psc),其中T为STM32定时器的计数值,psc为分频值。由Xa(k*F)=T*X(k)=T*DFT[x(n)]N, F=

=

=

(其中Xa为模拟信号的频谱函数,X(k)为采样信号的离散傅里叶变换,F表示对模拟信号频谱的采样间隔,称之为频率分辨率)。所以如果当k=temp时,频率取最大值,则最大频率为f=temp*F=temp*fus/n,(n为一次采样的点数)。

3、cr4_fft_1024_stm32(fftout ,fftin ,n)为使用的进行FFT变换的库函数,fftin为采集的输入信号的数组,fftout为输出的数组,n为点的个数。fftout中每个点有32位,高16位为FFT变换后的实部,低16位为虚部。对fftout进行变换,然后在求出频率的幅度最大时的k,即求出最大的频率。

相应的程序为:

3.6 TFTLCD显示界面设计

1、显示屏采用正点原子的3.2寸TFTLCD显示屏,利用正点原子提供的库函数进行开发。首先调用函数”LCD_Init()”进行初始化。

2、然后调用函数windows()函数进行绘制基本的显示窗口,当采样完1024个点后,将相应的点在LCD屏上显示出来,即形成波形。

四、设计结果

1、当输入1kHz方波时,采样频率为12000Hz:

测量得到频率为996Hz,最大值571mV,最小值0V。

2、当输入的信号频率为5kHz时,采样率为12000Hz时,得到:

测量得到信号的频率为5003Hz,最大值为577mV,最小值为0V。

附录1、STM32F103RC开发板原理图2、TFTLCD显示屏原理图3、作品实物



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有