作者:詹敏
概述(說明應(yīng)用產(chǎn)生的背景、實(shí)現(xiàn)功能)
簡易示波器基于STM32F103芯片及自帶ADC開發(fā)??蓪?shí)現(xiàn)電壓范圍0-3.3V,頻率范圍1Hz-10kHz正弦波和方波顯示,提供自動、普通以及單次三種采樣模式,上升沿和下降沿兩種觸發(fā)方式,0~3.3V觸發(fā)閥值。該系統(tǒng)可滿足常見場合使用需求。
開發(fā)環(huán)境(所采用的軟、硬件方案)
硬件:stm32f103-指南者,3.2寸ILI9341液晶顯示
RT-Thread版本:3.0.3
開發(fā)工具及版:MDK 5.26
RT-Thread使用情況概述(簡要總結(jié)下應(yīng)用中RT-Thread使用情況:內(nèi)核部分、組件部分、軟件包部分、內(nèi)核、其他)
內(nèi)核部分:調(diào)度器,信號量,消息隊列。
調(diào)度器:創(chuàng)建多個線程來實(shí)現(xiàn)不同的工作。
信號量:用來同步線程。
消息隊列:用來實(shí)現(xiàn)線程之間傳遞的數(shù)據(jù)。
硬件框架(概述應(yīng)用所采用的硬件方案框圖,并對核心部分做介紹)
ADC采集波形發(fā)生器信號經(jīng)過stm32f103芯片處理后顯示到3.2寸ILI9341液晶屏。
軟件框架說明(介紹應(yīng)用所采用的軟件方案框圖、流程圖等,并加以解說)
軟件模塊說明(介紹應(yīng)用軟件關(guān)鍵部分的邏輯、采用的實(shí)現(xiàn)方式等)
線程:
GetWave_thread:波形采樣線程;根據(jù)所設(shè)置的屏幕每一格代表的時間確定采樣頻率,根據(jù)觸發(fā)閥值和觸發(fā)模式確定采樣開始點(diǎn),對波形進(jìn)行采樣保存。PlotWave_thread:波形顯示線程;根據(jù)屏幕區(qū)域劃分進(jìn)行波形顯示。
KeyScan_thread:按鍵掃描線程;讀取按鍵值進(jìn)行轉(zhuǎn)換并發(fā)送給設(shè)置執(zhí)行線程。
Setting_thread:設(shè)置操作執(zhí)行線程;執(zhí)行設(shè)置項(xiàng)修改操作并刷新顯示信息。
消息隊列:
setting_data_queue:將按鍵掃描線程讀取并轉(zhuǎn)換后的設(shè)置信息傳遞給設(shè)置執(zhí)行線程,以完成設(shè)置更改和顯示信息刷新。
getwave_status_queue:用于波形采樣線程和波形顯示線程之間通信,確保采樣波形及時顯示刷新。
key_scan_queue:用于設(shè)置線程和按鍵檢測線程之間通信,確保按鍵信號及時被讀取同時避免按鍵檢測線程占用過多資源。
演示效果(演示效果請采用3張高清圖片,并錄制一段不少于1min視頻解說應(yīng)用所實(shí)現(xiàn)的效果,視頻上傳至B站或者騰訊視頻或其他視頻平臺,給出鏈接即可)
比賽感悟(可以圍繞這次比賽學(xué)到了什么,克服了哪些困難,有哪些收獲,不低于200字)
本次比賽信息我是通過微信公眾號了解到的,看到比賽時間剛好在準(zhǔn)備開題期間又考慮到我本身不是控制專業(yè),所以剛開始有點(diǎn)打退堂鼓。但那時候也正是剛剛完成一段時間的理論學(xué)習(xí),確實(shí)需要一個實(shí)踐項(xiàng)目來鞏固,所以最后抱著試一試的心態(tài)沒有申請板卡報名了。在截止日期也勉強(qiáng)完成了,但由于過程匆忙,系統(tǒng)仍有很多不完善的地方,算是一點(diǎn)遺憾了。
不過,總的來說收獲肯定是不小的,學(xué)習(xí)如此優(yōu)秀的國產(chǎn)操作系統(tǒng)RT-Thread并用它完成了自己的作品本身這件事足以讓這段時間稱得上有意義了。過程中也將之前所學(xué)知識應(yīng)用到時間,加深了理解。雖然比賽已經(jīng)結(jié)束了,后面還是會對作品進(jìn)行繼續(xù)優(yōu)化改進(jìn)。
最后感謝主辦方為我們提供了一個自我鍛煉的機(jī)會,學(xué)習(xí)的機(jī)會。感謝RT-Thread團(tuán)隊提供的優(yōu)秀操作系統(tǒng),后續(xù)還會繼續(xù)深入學(xué)習(xí)。