在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開發板的專案。

