欢迎光临散文网 会员登陆 & 注册

第六章合集3:本章作业

2023-02-17 16:28 作者:西邮严老师  | 我要投稿

6.4本章作业

(1)增加“暂停采集”和“继续采集”按键

思路:在主界面,增加2个按键,以及消息响应函数,在“MainView.cpp”中,编写消息响应函数,通过设置采集标志位变量,来控制graph显示函数“graph.addDataPoint”是否执行,或者控制HAL_ADC_Start_DMA()是否启动,来实现暂停采集或继续采集的效果。

(2)修改程序,使得动态图显示的范围为0-3.3伏,精度为0.001伏,与实际采样的模拟电压能对应。需要在touchGFX界面进行设计,并在MainView.cpp文件将采集到的数字量(0-4095,整型)线性转换为(0-3.300,浮点数),并添加纵坐标标尺。TouchGFX设置如下图所示。注意要修改字体为楷体,以便显示汉字。


 6-26 显示采样的模拟电压值

(3)查看编号为“UM1718”的cubeMX官方文档“STM32CubeMX for STM32 configuration and initialization C code generation”,修改程序,增加一个输入通道,实现两通道同步采样,并将这两个通道数据,采用不同的颜色,在一个图形里面显示。

思路:使用cubeMX配置ADC和DMA,可以使用一个ADC的两个不同的通道,通过轮询规则转换,将两个通道数据轮流存储到一个数组,再取出显示,这样每个通道的采样率最高为2.4MHz的一半;也可以增加一个ADC和DMA通道,实现两个通道独立采样,这样每个通道的最高采样率高仍然为2.4MHz。

(4)通过cubeMX配置三通道ADC复采样设置,实现最高7.2MHz采样率。

思路:使用三个ADC,映射到同一个管脚,然后三个ADC通道同时以最高采样率,通过三个DMA通道叠加采集同一信号,相当于实现最高采样率7.2MHz。

(5)信号的幅值和频率计算

使用MDK的DSP包,通过自带的FFT函数计算信号频率,并通过自带的相关函数,实现幅值、最大值、最小值、各次谐波的计算,在主界面通过文本框显示。

(6)“数据存储”设计

在主界面,增加1个按键,以及消息响应函数,在“MainView.cpp”中,编写消息响应函数,实现采样数据存储在SD卡或U盘中,两种存储器的用法,可参考STM32Cube_FW_F4固件中“..\Projects\STM32469I-Discovery\Applications”目录下面的“BSP”、“Audio”或“FatFs”、“Display”等例程,学习两种存储器用法。也可以参考第十二章“基于touchGFX的音频播放器”中关于SD卡的操作方法。

(7)编写“数据查看”页面

增加一个界面,可以从存储器中读取前期存储的数据,并展示在动态图上。

(8)编写“系统设置”页面

增加一个界面,通过按键、文本显示框等控件,实现采样频率、采样通道、采样方式等参数设置,并将参数存储在EEPROM或U盘中,在数据采集主界面,增加初始化ADC、DMA的初始化代码,所用参数从存储器中读出。

(9)参考第九章,设计Arduino接口的程控放大电路扩展板,选用合适的运算放大器和模拟开关(例如MAX4051),实现程控放大功能,对于输入0-10mv范围信号,可以放大100倍;0-100mv信号,放大10倍;0-1v信号,放大2倍;0-3伏信号,不放大。

(10)设计模拟电路,通过模拟开关,实现8通道电压信号采集功能。

(11)设计模拟电路,实现电流PT100 RTD热电偶热敏电阻频率/脉冲信号的测量和记录。

(12)参照第九章光功率计封装方法,选择合适壳体,将仪器进行组装,考虑稳定性、实用性、美观性。

(13)STM32F469I-DISCO开发板的原理图(官方文档“mb1189.pdf”),进行裁剪,保留单片机最小电路、SDRAM、SD卡、电源部分、flash等必要部分,去掉Audio、以太网等不必要的部分,将4寸触摸屏更换为7寸,增加模拟电路部分,自行设计一款双通道示波器,可显示信号波形、幅值、频率、谐波、峰值等参数,可设置多种语言。参考西邮光电学生课程设计设计的作品,如下图所示:


 6-27 西邮光电专业学生课程设计作品:基于touchGFX的简易示波器

西邮光电专业学生作品讲解视频见B站视频链接:https://www.bilibili.com/video/BV1Ey4y137yW/,仅供大家参考。


第六章合集3:本章作业的评论 (共 条)

分享到微博请遵守国家法律