程序分析架構

目錄:

HARDWARE、SYSTEM、爲串口、adc、lcd、延遲等一些文件,主要是在庫函數基礎上寫的。

CORE、FWLIB爲STM32的庫函數和cortex的核心代碼

MALLOC爲內存管理

FreeRTOS_xx是操作系統

APP是應用函數

Abstract是抽象層,抽象底層函數給APP使用

StateFlow爲用matlab建模的APP,實際和APP的作用一樣

STEmWINxx都是GUI庫用的函數

Resource是GUI顯示用到的圖片資源

USER是main函數和中斷函數的管理

 

具體分析:

main.c

 

行81——84是STEmWIN的初始化

行87是can的初始化函數,其中最後一個參數是模式選擇,設置爲CAN_MODE_NORMAL爲正常通訊

行90——94創建二值信號量(沒有使用)

行96創建應用的任務,包含2ms、5ms、10ms三個任務,用FreeRTOS調用

行97創建顯示的任務,由FreeRTOS調用。

行98進行任務調度,開始運行FreeRTOS。

 

MainTask.c

函數void TaskMain(void *pvParameters)用來調度2ms、5ms、10ms三個任務。

應用函數放在如下三個紅線的函數中:

下面函數調用顯示函數

下面兩個c文件用來放置應用任務,任務處理和數據顯示

 

DisplayApp.c中:

函數void HMIDisplay(void) 是來進行顯示驅動的。

下面1到4是指針的角度,分別是速度、油耗、轉速、溫度。

下面是里程

上面的幾個變量的顯示由如下值進行控制

可以在10ms任務中,對這幾個變量進行復制即可。

CANAPP.c和CANABSTRACT.c中是對can數據的處理

下面是三個報文:

可以通過結構體取can上的值,如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章