基于某STM32單片機地大數據采集系統_第1頁
基于某STM32單片機地大數據采集系統_第2頁
基于某STM32單片機地大數據采集系統_第3頁
基于某STM32單片機地大數據采集系統_第4頁
基于某STM32單片機地大數據采集系統_第5頁
免費預覽已結束,剩余5頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、實用標準文檔1課程設計要求基于STM3彈片機實現一個數據采集系統,具有數據采集、顯示、傳輸、存儲、分析這幾個功能。具體為以下幾個功能:1、 系統上電啟動,4個LED丁閃爍1秒,OLEt顯示學號、姓名和杭電LOGQ保持1秒后進入主界面,顯示系統名稱和功能菜單。通過K1/K2上下選擇功能,K3確定進入功能界面。在所有功能界面,默認K4返回主界面。2、 功能1為系統測試界面,4個LED燈顯示流水燈,OLEEW以圖形方式顯示測試內容,內容包括4個LED燈狀態(tài)、4個按鍵狀態(tài)、AD采樣數據、陀螺儀傳感器原始數據。單頁顯示不下時通過K1、K2上下翻頁。LED與按鍵狀態(tài)可用圖形或圖片進行顯示,AD采樣數據以及

2、MPU605散據可使用柱狀圖結合文字顯示。3、 功能2為陀螺儀姿態(tài)解算界面,OLED1示內容為解算出的MPU605喧態(tài)角數據(p4ch俯仰角、roll橫滾角和yaw航向角),精確0.1°,并能以其中的某個角度控制4個LED燈的亮度(100%-0喊度可調)。4、 功能3為數據傳輸界面,除了定時向兩個串口發(fā)送數據,OLEES示內容為:定時發(fā)送時間問隔(0.01-1秒)、發(fā)送數據格式、發(fā)送計數(累計發(fā)送數據幀)、接收字節(jié)計數。可使用K1調整發(fā)送時間問隔,K2切換上傳數據格式,K3啟動或暫停上傳數據。5、 設計安卓移動端APP軟件,能接受單片機通過藍牙模塊上傳的數據,并提取出數據幀中的有效數

3、據顯示在設備界面中。顯示內容包括:4個LED燈狀態(tài)、4個按鍵狀態(tài)、AD采樣數據或采樣電壓值、陀螺儀6軸原始數據及解算姿態(tài)角度。6、 沒有安卓設備的同學,可用PC端自編軟件替代,接收單片機通過USB用口上傳的數據,完成第五項內容要求。2系統方案設計(框圖、原理圖)硬件系統組成:1 .單片機:STM32F103C8T68MH磊振2 .USB轉用口芯片:PL2303SA3 .LDO電源:AMS11175V輸入3.3V輸出4 .LEDX4,力口1個電源顯示5 .按鍵X4,加1個復位按鍵6 .精密可調電阻10KQ7 .IIC接口6軸陀螺儀傳感器:MPU-60508 .IIC接口0.96寸128x64點陣

4、單色OLED9.HC05藍牙2.0通信模塊文案大全在此處鍵入系統框圖通過AD軟件繪制原理圖:7打g:AWstVWWX3TMU¥DO3EJ0JKijLTJU«eit-rnbcuovti:_zsTiA234匚口il工口0M"3TlFtiTIMPAJTCEVMLKFA;'JZ33DwuiBri.Txra軟件系統:1. STM32開發(fā)的集成開發(fā)環(huán)境(IDE):KEIL(ARM公司提供的MDK2. 采用HAL+STM32CubeMX組合來替代寄存器操作或者使用標準外設庫的開在此處鍵入發(fā)方式3. STM32的軟件調試下載,常見的方法有串口ISP下載和調試器(仿真器)下

5、載兩種。串口ISP下載需要引出單片機的BOOT0BOOT1和串口1,下載時將BOOTCB高,BOOT1拉低,PC機通過一根USB轉用口線連到單片機的串口1進行下載。有的電子系統直接將USB轉用口線的功能集成在電路板上,PC機進行ISP下載時就只需要一根USB線就可以了。STM32常用的ISP下載工具有ST公司官方的FlashLoaderDemonstrator和第三方的mcuisp、FlyMcu、sscom等工具軟件。這里我們采用sscom®C件進彳T串口ISP下載。3軟件設計(軟件功能框圖、各模塊流程圖)采用FreeRTOS將功能劃分為多個任務,每個任務負責實現其中的一部分,每個任

6、務都是一個很簡單的程序,通常是一個死循環(huán)。低憂先抑仟葬怔行兀翅廠務中嘛服箸程序IKK中心服務叟序使用FreeRTOS開啟三個任務實現數據采集、上傳、按鍵動作和界面顯示等綜合在此處鍵入功能,主任務負責MPU605吸據采集和數據上傳、按鍵任務負責按鍵掃描和按鍵動作處理、顯示任務負責OLED屏幕顯示刷新。數據采集和上傳任務:/*starc.DefauItTaskfunctionvdidStartDefultTask(voidconatI/*HMliRCODE5*/=harbufUDOJ;uint32_tcldrick-.;HALADCEjsCdl_ijrd_QnS(thd.dcl);H2LLADC_

7、Start&二addr(uj.ut32_t*)gvalj2;gbMpiok=t*PU_init();if(gbttpuok)prinlzfI"MFUfOSOir.it.rror!nn>:/*InfiniteIq&F*/for;ifIlinef加果豐口1隹收到一行-數pri口tfLralJjuff=%s",rjQJjuff:/打印輸出接收內容UartSSendStr(char*rxl_buff;/同時將短據發(fā)送紿串口2HiHmuHiHHunnflnnn博建戴奈江再/memset(rxlufffL5:z-af灣空豐口1浜與區(qū)psuf=rxl2fcurf;/

8、主而再豐11麥吠尬書泊存放而葉生向筆-M整存的頭部(ShuiartL>->i:RxBuffFtr=pEuf;/重產號E口1行行體的法收胃沖指針擊向母;中城淚去三linelag=0;用口據UE標志法等+_nR號vCqhet;)一iftline_ria(j2)"如索串二二排葭到一行砧提prinrf7'rK2buff-5鏟,rx3_Mff;/打印登收內害到串口1nnnuuHHfi/ui/niHHHn度收效有處理/nienset(rx2_buff,sizeof(xx2_buffI;/清交中口工陵存區(qū)pBuf2-«2_buff;/重新將串口可接收敷據的存放指針指向

9、接收緩存的頭部huart2)->pRxBurntr=pBuf2;壟:勃將蟲口2思構體中的會收第;中指升指向3沖數包頭烹llne_flag2=;*匚2接收稀土清軍+q_nRevCount;)Iftriit_ok!=HAL_mt)/如果本口1接收中新還沒有焙助*登試再次啟動rxit_ck=HAL_UART_fteeeive_lTt&hiiarrljrnfiufj,1);if(riit_ak2!=_flAL_OK)"一如果本口2金收中斷誣沒有啟動,嘗試再次啟動rxlt_ak2=hAL_UARTReceivet*rtthuart2,panfi,1);二上(C_JftpnbJr)

10、7,如稟正UE。5d田始化戌為HFiJ_Qetc.aTa(1;分讀取;專感再數里it(HAL&et>=oldticlc+gn3ejdTim.e)&工qbSenzil(oldtitk=HALGetTick1)iii(VaKpiok)if(grtastyle)/二笄式化計算豆數福德sprintffbuf,"7ysfIfXr",gadval*3.3/419廝fhx,fAYrfz);elseh格式讓原始芍市噢sprintffbuf,”¥MY,3d,Nd,“泮d,就t*心工才。gddvalfax,ay,日“gxrgy,gz);H同時將字符豐堂送到出口1

11、和二口2printf("Vs",l)uf);uar12s&ndstr(buf;+g_nS?n!iC3unt;J_osJelay(-);“格式化狀態(tài)幀3在此處鍵入spriiitf(buff"7MBDtald-c*"7(gLadstatOjcCI)?T:'O',(g二Sd百口l0x02?*1*:何二Leesei0x041141r:州,*(匚*日八d&CxOQlW*11r'O',(gi2Keypress.Kl_Pin7fD+:*0*,q附*m&K3二Fin)?TDT:dg-Keypre3&K3Pi

12、n!?TDT:PL(g-Keypres&K4Pin)?TDT:TuTlpriizxf("5",bu£);U江工二?39匚d3:工Luf>;+gTLSendCouTit;1siteLayI;)/*USE口CODEEND5*/11按鍵處理任務:veldStartK*72asJ<(vsidcansr:*arewent!(/*U3ERCODEBE白工XSrartKeyrask*/uint32_toldtick-.;/*Infiniteloop*/tort;)4uint0tkey=ScanKsy();stlteh(g_iiSeren)Idefault:七

13、三注0:/主菜單switchk5ycas=1:4-+gnsel;g_nse'fe=3;bre3k;case2;-g_nsel;g_nse_-gnsel/普*普break;case 3:g_iLScreeE-gnScl+1;bceak;ua與三4;g_nScrfeen-C;bieak;)j?redk;占第1:/i潴試界面irlilAL_jaLTlCk(>>Olllitk*JH(-oLdtick-HALs»t;Tickl);RunLJdo1"市水燈剿法DE曲mxituh(key)id_1L:上工三白怔:case1:cue2::-5ribreak;casei:

14、break;case4:g_nScreef:-U;S&lLEDS(LxU.);b工2k;breakcase2:/年算界武Switch(key)(default._break;esse1:casg2:case3:bxeak;case4:g_n5cieer=0;r:rsa>jbreak;Gan七3二H數據徑輸界面itHAL_GeDlick()>oldCi_Ck*,I_cldticx-;RHnL3d);fi濟北rr)awi-ch(iayaefakilt:Er±ak;caae心”切熱發(fā)送時間間隔x±(g_Et自電ndTiffi占>-1DU_I*g_n;5e

15、ndTinie-50;el-?eIf(g_n3endTiir«>20“g_nS&ndI?nio-1J.0;elseif(g_nSendTinj®>-5。)g_ELOsnaTme=2口-ielseg_Ta3cndTirne1"匚口;pzinf1aiaendtii»"%dr.",g_nSon.dTlmB);br&al;在此處鍵入case2:切換發(fā)送數據格式jnDataStyle=!_nData5tyle;breek;ease3:啟動,客等發(fā)送j_bSend-!g_bSend;printf("bsend

16、-%dnT,g_bSer.d);breek;case 4:5_nScrean=3;break;)break;)osEelav(1);/*USERCODEENDStartKeyTask*/顯示任務:/*Bt;a£rT;D£epT?ask.luaet-xcii*/voidiSMr'SL-iapTaaJL(T±idCOMt*axg-umen1(/*U3ERCODEBEGINStartDispTaskTI>ED_QPIO_Ttiit(»3etLED3(CxFIT);/史新設置4工吏丁燈狀態(tài)adDeLy(2rjr*);34LLEE3(CjlOD);o

17、»L-«lay(250):SatlS(CXFS)J/重新設直4個LEL丁狀亦oarDol2y(250)iSetLEDS(OxOO);<5UI_Tnitt);H初的住國筆底ATT(fiRTTTF-.nnT13_!=!im3un12.;SOTDc.h口i七1mp#btnlomn*凸*口):,/信募居中市W4kEW小的Lghg!國片"ffERpip5triFg&t('5ftfg",7?,1";字號姓名上“*2*=/GHtEiapatrinqAt(''15(F,32;gn_U|pdmgf>/劇三-顯示nAi_

18、Delay(oc-o>7/期月保持晶木二秒W導/*JtlIiziiteAo;3p*/for(;J)ItGtrrei=ao;/白司川營E-士三邑國3wi_tcH.m_sSlcZJZ=已口)J1c-abt0£/面Drawsexeen0(J;breakjcase1s測試界而Drawscr&Qnl()jtreat;caseZrH姿態(tài)艇算.狎國Dxacx»»n2()jbreak,ca曰0箝:/數香傳播號而口工占*濟u工君日口M();break*1GL'I_Vpdate(>H即斷屏MoaDalay(1>j)U8ERCODEENDfltHrtDiffploak*f在此處鍵入初始啟動LOGO生名學號功能在顯示任務中實現,之后進入界面選擇的循環(huán)程序中等待按鍵選擇。功能1流水燈在按鍵任務中實現,調用RunLsd()函數;狀態(tài)和數據顯示在DrawScreenl函數中實現;功能2在DrawScreen2中實現,并使用航向角為參數調用SetPWMLight函數調節(jié)LED亮度;功能3在DrawScreen3函數中將數據采集處理任務中得到的數據傳輸信息

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論