В прошлой статье мы рассказали, как установить программное обеспечение TouchGFX. Здесь мы расскажем, как с помощью STM32CubeMX перенести TouchGFX на плату разработчика STM32 F429IGT6 и управлять RGB-экраном.
Как перенести проект TouchGFX с помощью STM32CubeMX?
В этом учебном пособии наша цель — перенести проект TouchGFX на плату разработчика STM32.
Необходимые инструменты
- Аппаратное обеспечение
- Основная плата/плата разработчика на базе микроконтроллера STM32: STM32F429IGT6;
- Дисплей с интерфейсом RGB, рекомендуемое разрешение: 800*480;
- ST-Link или совместимый отладчик;
- Программное обеспечение
- ARM Keil uVision5 (версия, используемая в этой статье: V5.38.0.0);
- STM32 CubeMX (версия, используемая в этой статье: 6.9.2);
- Программный пакет TouchGFX Generator (версия, используемая в данной статье: V4.22.1).
STM32CubeMX Конфигурация
STM32CubeMX в основном используется для настройки уровня абстракции аппаратного обеспечения и уровня промежуточного программного обеспечения в схеме структуры приложения TouchGFX.
Начать новый проект:
Системный такт RCC: высокоскоростной внешний такт (HSE), настроенный как внешний кварцевый генератор.
Поскольку нам необходимо использовать операционную систему FreeRTOS, рекомендуется изменить источник временной базы библиотеки HAL с SysTick на другие таймеры. После выбора таймера система автоматически настроит TIM, который здесь установлен на TIM7.
Настройки FMC: настройте внешнюю SDRAM в качестве видеопамяти RGBLCD и настройте параметры и контакты в соответствии с вашим оборудованием.
Настройки DMA2D: активируйте DMA2D, настройте цветовой режим на RGB565 и включите прерывания DMA2D.
Настройки параметров LTDC: Настройте параметры LTDC в соответствии с используемыми параметрами экрана.
Настройки слоя LTDC: выберите здесь слой 1 и установите адрес буфера кадра на первый адрес SDRAM 0XC0000000.
Настройки выводов LTDC GPIO: Настройте GPIO в соответствии с подключением выводов конкретной платы разработчика. Обратите внимание, что скорость вывода должна быть установлена на «Очень высокая», а прерывание LTDC должно быть включено.
Конфигурация дерева тактовых частот: размер тактовой частоты пикселей составляет 1056*705*60/1024/1024=42M, максимальное значение тактовой частоты пикселей составляет 42M, здесь оно установлено на 33M (1056 — общая ширина, 705 — общая высота).
Настройки контактов подсветки: в разработанной в данной статье плате PB5 используется в качестве контакта подсветки и настроен на двухтактный выход.
Активировать CRC: TouchGFX необходимо включить функцию CRC.
Активируйте систему FreeRTOS: установите размер кучи в 32768 байт, а остальные настройки оставьте по умолчанию; добавьте задачу TouchGFX.
Выберите пакет компонентов Touchgfx.
Настройки параметров TouchGFX: выберите двойную буферизацию, RGB565 и включите ускорение DMA2D.
Менеджер проектов: установка названия проекта, местоположения проекта и компоновщика. (Минимальный размер стека установлен на 0X800.)
Сгенерируйте код проекта: после того, как STM32CubeMX сгенерирует проект, не открывайте проект Keil. (Если вы скомпилируете проект Keil в этот момент, появится большое количество ошибок.)
TouchGFX Designer
После генерации проекта Keil код успешно сгенерирован в папке:
E:/STM32 Project/STM32F429/TouchGFX FreeRTOS
Мы находим этот путь. В каталоге TouchGFX находится файл ApplicationTemplate.touchgfx.part. Щелкните, чтобы открыть TouchGFX Designer для разработки пользовательского интерфейса.
После перетаскивания некоторых элементов управления и нажатия кнопки «Сгенерировать код» для генерации кода код, связанный с TouchGFX, будет автоматически добавлен в проект.
MKD-ARM Keil Compile
Добавьте исходные файлы драйвера SDRAM и заголовочные файлы.
Добавьте функцию инициализации SDRAM в функцию MX_FMC_Init() файла fmc.c для управления внешним микросхемой памяти.
Включите подсветку экрана в файле touchgfxhal.cpp.
Добавьте соответствующую задачу и добавьте функцию обработки TouchGFX.
Скачать и протестировать
После правильной компиляции загрузите его на плату разработчика.
Если TouchGFX успешно перенесено, на экране платы разработчика отобразится интерфейс, разработанный в TouchGFX Designer.




