跳轉到主要內容

在STM32G071 Nucleo上運行的範例應用

在本節,我們將討論如何基於TouchGFX開發板設置(TouchGFX Designer中提供的ST開發套件之一),在沒有作業系統的情況下運行TouchGFX專案。 本文不針對從STM32CubeMX或STM32CubeIDE開始的客製專案。

從TouchGFX開發板設置開啟一個專案

在TouchGFX Designer中提供的大多數TouchGFX開發板設置中,OS FreeRTOS默認是啟用的。 如需在沒有作業系統的情況下運行,必須遵循幾個步驟。 這裡我們將以STM32H7B3-DK板的TouchGFX開發板設置為例。

  1. 從TouchGFX Designer創建一個專案(採用STM32H7B3-DK板的TouchGFX開發板設置)並生成程式碼。

  2. 用STM32CubeMX打開提供的.ioc文件。

  3. 在STM32CubeMX介面,導航到“Middleware(中介軟體)” ->FreeRTOS設置,並禁用FreeRTOS

STM32CubeMX中STM32H7B3-DK的FreeRTOS設置

打開背光

在大多數TouchGFX開發板設置中,顯示器的背光最初是關閉的。 這樣做是為了防止在第一個tick期間啟動開發板時出現故障顯示。 當第一個影像緩衝區在TouchGFXHAL.cpp中的taskEntry()函數(位於TouchGFX/target資料夾下)中就緒時,背光打開。 當在沒有作業系統的情況下運行時,taskEntry()函數永遠不會被呼叫,意味著在影像緩衝區仍然正確更新時,顯示器永遠不會打開。 解決方案是在啟動時打開背光,方法是將LTDC_HSYNC和VSYNC引腳設置為HIGH

  1. 導航到System Core中的GPIO設置 ->GPIO部分。 查找連接到顯示器背光的引腳,並將GPIO輸出電平設置為HIGH。 與STM32H7B3-DK開發板對應的引腳是PA1(用戶標籤:LCD_BL_CTRL)和PA2(用戶標籤:LCD_ON/OFF)。

為STM32H7B3-DK而打開背光

  1. 從STM32CubeMX生成程式碼,然後從TouchGFX Designer生成程式碼。

清除程式碼

STM32CubeMX和TouchGFX Generator不能清除位於“USER CODE”之下對RTOS函數的潛在呼叫。 因此有必要手動清除程式碼。 對於STM32H7B3-DK TBS,只需要修改觸控控制器。

  1. 打開在專案的TouchGFX/target資料夾下找到的STM32TouchController.cpp文件。 手動刪除#include <cmsis_os.h>和if-語句中的configASSERT(0)

  2. 刪除Core/src資料夾中的Freertos.c文件。

要從TouchGFX設計器將專案燒錄到您的開發板上,需要通過刪除或註解與作業系統相關的資源和路徑來清除Makefile(在gcc資料夾下)。 還需要為使用的工具鏈/IDE清除不同專案中所有與作業系統相關的資源和路徑。

現在可以在沒有作業系統的情況下運行TouchGFX開發板的專案。