stm32的軟件架構(gòu)問題
1、 架構(gòu)組成:程序代碼分為四種結(jié)構(gòu)
a) 順序執(zhí)行代碼
定義:按照順序逐行執(zhí)行的代碼
優(yōu)點(diǎn):是思路簡(jiǎn)單,代碼可靠不易被干擾。
缺點(diǎn):占用資源
用途:只用來各種變量、函數(shù)的定義,硬件的初始化程序
位置:main.c的開始一直到main函數(shù)的while函數(shù)之前
b) 空閑執(zhí)行代碼
定義:在CPU空閑的時(shí)候才執(zhí)行的代碼
優(yōu)點(diǎn):不占用資源
缺點(diǎn):執(zhí)行的實(shí)時(shí)性不能保證
用途:非實(shí)時(shí)任務(wù),調(diào)試信息輸出,不重要的狀態(tài)指示
位置:main.c的main函數(shù)的while函數(shù)內(nèi)部
c) 中斷執(zhí)行代碼
定義:由軟硬件事件打斷整個(gè)程序而執(zhí)行的代碼
優(yōu)點(diǎn):可以保證實(shí)時(shí)性,各種中斷可以安排優(yōu)先順序
缺點(diǎn):關(guān)系相對(duì)復(fù)雜,互相之間容易干擾
用途:觸發(fā)性的代碼,比如接收數(shù)據(jù),響應(yīng)外部設(shè)備,按鈕的相應(yīng)
位置:stm32f10x_it.c內(nèi)部
d) 循環(huán)執(zhí)行代碼
定義:按照時(shí)間周期執(zhí)行的代碼
優(yōu)點(diǎn):定期自動(dòng)執(zhí)行
缺點(diǎn):實(shí)時(shí)性不好
用途:需要周期執(zhí)行的任務(wù),狀態(tài)檢查及相關(guān)信息輸出,數(shù)據(jù)記錄
位置:stm32f10x_it.c的SysTickHandler內(nèi)部
e) DMA自動(dòng)代碼
定義:不需要主程序干預(yù),外設(shè)自動(dòng)執(zhí)行
優(yōu)點(diǎn):自動(dòng)刷新數(shù)據(jù),不占用CPU資源
缺點(diǎn):不能控制
用途:數(shù)據(jù)通信存儲(chǔ),AD轉(zhuǎn)換
位置:不需要