Учебник по разработке TouchGFX

Содержание

TouchGFX Designer Overview

В прошлой статье мы рассказали, как установить программное обеспечение TouchGFX. Здесь мы расскажем, как с помощью STM32CubeMX перенести TouchGFX на плату разработчика STM32 F429IGT6 и управлять RGB-экраном.

Как перенести проект TouchGFX с помощью STM32CubeMX?

В этом учебном пособии наша цель — перенести проект TouchGFX на плату разработчика STM32.

Необходимые инструменты

  • Аппаратное обеспечение
  1. Основная плата/плата разработчика на базе микроконтроллера STM32: STM32F429IGT6;
  2. Дисплей с интерфейсом RGB, рекомендуемое разрешение: 800*480;
  3. ST-Link или совместимый отладчик;
  • Программное обеспечение
  1. ARM Keil uVision5 (версия, используемая в этой статье: V5.38.0.0);
  2. STM32 CubeMX (версия, используемая в этой статье: 6.9.2);
  3. Программный пакет TouchGFX Generator (версия, используемая в данной статье: V4.22.1).

STM32CubeMX Конфигурация

STM32CubeMX в основном используется для настройки уровня абстракции аппаратного обеспечения и уровня промежуточного программного обеспечения в схеме структуры приложения TouchGFX.

Начать новый проект:

Start a New Project from MCU STM32F429IGT6
Start a New Project from MCU STM32F429IGT6

Системный такт RCC: высокоскоростной внешний такт (HSE), настроенный как внешний кварцевый генератор.

RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator
RCC Mode and Configuration_Setting HSE as CrystalCeramic Resonator

Поскольку нам необходимо использовать операционную систему FreeRTOS, рекомендуется изменить источник временной базы библиотеки HAL с SysTick на другие таймеры. После выбора таймера система автоматически настроит TIM, который здесь установлен на TIM7.

SYS Mode and Configuration_Setting Timebase Source as TIM7
SYS Mode and Configuration_Setting Timebase Source as TIM7

Настройки FMC: настройте внешнюю SDRAM в качестве видеопамяти RGBLCD и настройте параметры и контакты в соответствии с вашим оборудованием.

FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration_Use SDRAM
FMC Mode and Configuration Configure the SDRAM parameters
FMC Mode and Configuration_Configure the SDRAM parameters

Настройки DMA2D: активируйте DMA2D, настройте цветовой режим на RGB565 и включите прерывания DMA2D.

Activate DMA2D Mode and Configure Color Mode as RGB565
Activate DMA2D Mode and Configure Color Mode as RGB565
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt
DMA2D Mode and Configuration_NVIC Settings_Enabled Interrupt

Настройки параметров LTDC: Настройте параметры LTDC в соответствии с используемыми параметрами экрана.

LTDC Mode and Configuration_Parameter Settings
LTDC Mode and Configuration_Parameter Settings

Настройки слоя LTDC: выберите здесь слой 1 и установите адрес буфера кадра на первый адрес SDRAM 0XC0000000.

LTDC Mode and Configuration_Layer Settings
LTDC Mode and Configuration_Layer Settings

Настройки выводов LTDC GPIO: Настройте GPIO в соответствии с подключением выводов конкретной платы разработчика. Обратите внимание, что скорость вывода должна быть установлена на «Очень высокая», а прерывание LTDC должно быть включено.

LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration_GPIO Settings
LTDC Mode and Configuration NVIC Settings Enabled Interrupt
LTDC Mode and Configuration_NVIC Settings_Enabled Interrupt

Конфигурация дерева тактовых частот: размер тактовой частоты пикселей составляет 1056*705*60/1024/1024=42M, максимальное значение тактовой частоты пикселей составляет 42M, здесь оно установлено на 33M (1056 — общая ширина, 705 — общая высота).

Clock Configuration_Input frequency_HSE
Clock Configuration_Input frequency_HSE

Настройки контактов подсветки: в разработанной в данной статье плате PB5 используется в качестве контакта подсветки и настроен на двухтактный выход.

GPIO Mode and Configuration_Configure PB5 as Backlight Pin
GPIO Mode and Configuration_Configure PB5 as Backlight Pin

Активировать CRC: TouchGFX необходимо включить функцию CRC.

Activate CRC Mode
Activate CRC Mode

Активируйте систему FreeRTOS: установите размер кучи в 32768 байт, а остальные настройки оставьте по умолчанию; добавьте задачу TouchGFX.

FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Config parameters
FREERTOS Mode and Configuration_Add Tasks and Queues
FREERTOS Mode and Configuration_Add Tasks and Queues

Выберите пакет компонентов Touchgfx.

Software Packs_Select Components
Software Packs_Select Components
Software Packs Component Selector TouchGFX Generator
Software Packs Component Selector_TouchGFX Generator

Настройки параметров TouchGFX: выберите двойную буферизацию, RGB565 и включите ускорение DMA2D.

TouchGFX Generator_Configure the parameters
TouchGFX Generator_Configure the parameters

Менеджер проектов: установка названия проекта, местоположения проекта и компоновщика. (Минимальный размер стека установлен на 0X800.)

Project Manager_Setting Project Name, Location, Linker
Project Manager_Setting Project Name, Location, Linker

Сгенерируйте код проекта: после того, как STM32CubeMX сгенерирует проект, не открывайте проект Keil. (Если вы скомпилируете проект Keil в этот момент, появится большое количество ошибок.)

Generate Project Code_TouchGFX FreeRTOS
Generate Project Code_TouchGFX FreeRTOS

TouchGFX Designer

После генерации проекта Keil код успешно сгенерирован в папке:

E:/STM32 Project/STM32F429/TouchGFX FreeRTOS

STM32 Project_Open the Application Template.touchgfx
STM32 Project_Open the Application Template.touchgfx

Мы находим этот путь. В каталоге TouchGFX находится файл ApplicationTemplate.touchgfx.part. Щелкните, чтобы открыть TouchGFX Designer для разработки пользовательского интерфейса.

TouchGFX Designer Generate Code
TouchGFX Designer Generate Code

После перетаскивания некоторых элементов управления и нажатия кнопки «Сгенерировать код» для генерации кода код, связанный с TouchGFX, будет автоматически добавлен в проект.

MKD-ARM Keil Compile

Добавьте исходные файлы драйвера SDRAM и заголовочные файлы.

Keil Project_TouchGFX_Edit sdram.c
Keil Project_TouchGFX_Edit sdram.c

Добавьте функцию инициализации SDRAM в функцию MX_FMC_Init() файла fmc.c для управления внешним микросхемой памяти.

Keil Project_TouchGFX_Edit fmc.c
Keil Project_TouchGFX_Edit fmc.c

Включите подсветку экрана в файле touchgfxhal.cpp.

Keil Project_Edit TouchGFXHAL.cpp
Keil Project_Edit TouchGFXHAL.cpp

Добавьте соответствующую задачу и добавьте функцию обработки TouchGFX.

Keil Project_Edit freertos.c
Keil Project_Edit freertos.c

Скачать и протестировать

После правильной компиляции загрузите его на плату разработчика.

Download the project code to the STM32F429 development board
Download the project code to the STM32F429 development board

Если TouchGFX успешно перенесено, на экране платы разработчика отобразится интерфейс, разработанный в TouchGFX Designer.

TouchGFX was successfully ported to the STM32F429 development board
TouchGFX was successfully ported to the STM32F429 development board

Подписаться

Присоединяйтесь к нашему списку подписчиков, чтобы получать ежемесячные обновления блога, новости о технологиях, практические примеры. Мы никогда не будем рассылать спам, и вы можете отказаться от подписки в любое время.

Об авторе

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Нужна помощь?

Прокрутить вверх

Instant Quote