在STM32G071 Nucleo上運行的範例應用
在本節,我們將討論如何基於TouchGFX開發板設置(TouchGFX Designer中提供的ST開發套件之一),在沒有作業系統的情況下運行TouchGFX專案。 本文不針對從STM32CubeMX或STM32CubeIDE開始的客製專案。
從TouchGFX開發板設置開啟一個專案
在TouchGFX Designer中提供的大多數TouchGFX開發板設置中,OS FreeRTOS默認是啟用的。 如需在沒有作業系統的情況下運行,必須遵循幾個步驟。 這裡我們將以STM32H7B3-DK板的TouchGFX開發板設置為例。
從TouchGFX Designer創建一個專案(採用STM32H7B3-DK板的TouchGFX開發板設置)並生成程式碼。
用STM32CubeMX打開提供的
.ioc
文件。在STM32CubeMX介面,導航到“Middleware(中介軟體)” ->FreeRTOS設置,並禁用FreeRTOS
打開背光
在大多數TouchGFX開發板設置中,顯示器的背光最初是關閉的。 這樣做是為了防止在第一個tick期間啟動開發板時出現故障顯示。 當第一個影像緩衝區在TouchGFXHAL.cpp
中的taskEntry()
函數(位於TouchGFX/target
資料夾下)中就緒時,背光打開。 當在沒有作業系統的情況下運行時,taskEntry()
函數永遠不會被呼叫,意味著在影像緩衝區仍然正確更新時,顯示器永遠不會打開。 解決方案是在啟動時打開背光,方法是將LTDC_HSYNC和VSYNC引腳設置為HIGH。
- 導航到System Core中的GPIO設置 ->GPIO部分。 查找連接到顯示器背光的引腳,並將GPIO輸出電平設置為HIGH。 與STM32H7B3-DK開發板對應的引腳是PA1(用戶標籤:LCD_BL_CTRL)和PA2(用戶標籤:LCD_ON/OFF)。
- 從STM32CubeMX生成程式碼,然後從TouchGFX Designer生成程式碼。
清除程式碼
STM32CubeMX和TouchGFX Generator不能清除位於“USER CODE”之下對RTOS函數的潛在呼叫。 因此有必要手動清除程式碼。 對於STM32H7B3-DK TBS,只需要修改觸控控制器。
打開在專案的
TouchGFX/target
資料夾下找到的STM32TouchController.cpp
文件。 手動刪除#include <cmsis_os.h>
和if-語句中的configASSERT(0)
。刪除
Core/src
資料夾中的Freertos.c
文件。
要從TouchGFX設計器將專案燒錄到您的開發板上,需要通過刪除或註解與作業系統相關的資源和路徑來清除Makefile
(在gcc
資料夾下)。 還需要為使用的工具鏈/IDE清除不同專案中所有與作業系統相關的資源和路徑。
現在可以在沒有作業系統的情況下運行TouchGFX開發板的專案。