目錄:
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上的值,如下