第六章合集3:本章作業(yè)

6.4本章作業(yè)
(1)增加“暫停采集”和“繼續(xù)采集”按鍵
思路:在主界面,增加2個按鍵,以及消息響應函數,在“MainView.cpp”中,編寫消息響應函數,通過設置采集標志位變量,來控制graph顯示函數“graph.addDataPoint”是否執(zhí)行,或者控制HAL_ADC_Start_DMA()是否啟動,來實現(xiàn)暫停采集或繼續(xù)采集的效果。
(2)修改程序,使得動態(tài)圖顯示的范圍為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”,修改程序,增加一個輸入通道,實現(xiàn)兩通道同步采樣,并將這兩個通道數據,采用不同的顏色,在一個圖形里面顯示。
思路:使用cubeMX配置ADC和DMA,可以使用一個ADC的兩個不同的通道,通過輪詢規(guī)則轉換,將兩個通道數據輪流存儲到一個數組,再取出顯示,這樣每個通道的采樣率最高為2.4MHz的一半;也可以增加一個ADC和DMA通道,實現(xiàn)兩個通道獨立采樣,這樣每個通道的最高采樣率高仍然為2.4MHz。
(4)通過cubeMX配置三通道ADC復采樣設置,實現(xiàn)最高7.2MHz采樣率。
思路:使用三個ADC,映射到同一個管腳,然后三個ADC通道同時以最高采樣率,通過三個DMA通道疊加采集同一信號,相當于實現(xiàn)最高采樣率7.2MHz。
(5)信號的幅值和頻率計算
使用MDK的DSP包,通過自帶的FFT函數計算信號頻率,并通過自帶的相關函數,實現(xiàn)幅值、最大值、最小值、各次諧波的計算,在主界面通過文本框顯示。
(6)“數據存儲”設計
在主界面,增加1個按鍵,以及消息響應函數,在“MainView.cpp”中,編寫消息響應函數,實現(xiàn)采樣數據存儲在SD卡或U盤中,兩種存儲器的用法,可參考STM32Cube_FW_F4固件中“..\Projects\STM32469I-Discovery\Applications”目錄下面的“BSP”、“Audio”或“FatFs”、“Display”等例程,學習兩種存儲器用法。也可以參考第十二章“基于touchGFX的音頻播放器”中關于SD卡的操作方法。
(7)編寫“數據查看”頁面
增加一個界面,可以從存儲器中讀取前期存儲的數據,并展示在動態(tài)圖上。
(8)編寫“系統(tǒng)設置”頁面
增加一個界面,通過按鍵、文本顯示框等控件,實現(xiàn)采樣頻率、采樣通道、采樣方式等參數設置,并將參數存儲在EEPROM或U盤中,在數據采集主界面,增加初始化ADC、DMA的初始化代碼,所用參數從存儲器中讀出。
(9)參考第九章,設計Arduino接口的程控放大電路擴展板,選用合適的運算放大器和模擬開關(例如MAX4051),實現(xiàn)程控放大功能,對于輸入0-10mv范圍信號,可以放大100倍;0-100mv信號,放大10倍;0-1v信號,放大2倍;0-3伏信號,不放大。
(10)設計模擬電路,通過模擬開關,實現(xiàn)8通道電壓信號采集功能。
(11)設計模擬電路,實現(xiàn)電流、PT100 RTD熱電偶、熱敏電阻、頻率/脈沖信號的測量和記錄。
(12)參照第九章光功率計封裝方法,選擇合適殼體,將儀器進行組裝,考慮穩(wěn)定性、實用性、美觀性。
(13)STM32F469I-DISCO開發(fā)板的原理圖(官方文檔“mb1189.pdf”),進行裁剪,保留單片機最小電路、SDRAM、SD卡、電源部分、flash等必要部分,去掉Audio、以太網等不必要的部分,將4寸觸摸屏更換為7寸,增加模擬電路部分,自行設計一款雙通道示波器,可顯示信號波形、幅值、頻率、諧波、峰值等參數,可設置多種語言。參考西郵光電學生課程設計設計的作品,如下圖所示:

圖?6-27 西郵光電專業(yè)學生課程設計作品:基于touchGFX的簡易示波器
西郵光電專業(yè)學生作品講解視頻見B站視頻鏈接:https://www.bilibili.com/video/BV1Ey4y137yW/,僅供大家參考。