Фильтр по тематике

Создание графических интерфейсов пользователя для STM32 с использованием STemWin

В статье приведены краткое описание и примеры использования программного продукта STemWin для создания графических интерфейсов пользователя на основе микроконтроллеров серии STM32 компании STMicroelectronics.

20.06.2018 1355 0
Создание графических интерфейсов пользователя для STM32 с использованием STemWin

Введение

Пользователи современной электроники быстро привыкли к многоцветным графическим интерфейсам с сенсорным управлением и уже прохладно относятся к изделиям с простыми алфавитно-цифровыми дисплеями. Однако применение цветных графических панелей в микропроцессорных устройствах требует наличия большого объёма памяти, специальных интерфейсов и высокой производительности системы. Кроме того, программная поддержка графических панелей значительно сложнее и нуждается в специализированных средах разработки.

В настоящее время выпускается множество электронной техники, оснащённой современными производительными процессорами с достаточным объёмом памяти и цветными графическими панелями. Для построения подобных устройств и графических интерфейсов пользователя (ГИП) существуют специальные программные среды разработки, позволяющие минимизировать затраты времени и сил. Программы ГИП представляют собой разновидность пользовательского интерфейса, в котором такие элементы, как меню, кнопки, значки, списки и т.п., выполнены в виде графических изображений на дисплее. В отличие от интерфейса командной строки, в ГИП пользователь имеет произвольный доступ ко всем видимым на экране элементам интерфейса. С помощью различных устройств ввода, таких как клавиатура, мышь, джойстик и др., осуществляется непосредственное манипулирование элементами интерфейса и, тем самым, управление устройством.

Компания STMicroelectronics [1] для создания ГИП предлагает программную графическую библиотеку STemWin, построенную на основе библиотеки emWin от SEGGER [2].

Ниже представлены простые примеры использования данной библиотеки.

Аппаратное обеспечение

В качестве аппаратной платформы в приведённых ниже приложениях будет использоваться готовая отладочная плата 32F429IDISCOVERY с микроконтроллером STM32F429ZIT6 и цветной графической панелью. Отладочная плата 32F429IDISCOVERY предоставляет все необходимые возможности для того, чтобы сразу приступить к разработке интерфейсных программ, как начинающим разработчикам, так и профессионалам. Внешний вид отладочной платы 32F429IDISCOVERY представлен на рисунке 1.

Плата 32F429IDISCOVERY построена на основе микроконтроллера нового поколения STM32F429ZIT6 компании STMicroelectronics. Данный микроконтроллер с ядром Cortex-M4F имеет повышенную тактовую частоту 180 МГц, увеличенный объём флэш- (2 Мбит) и оперативной памяти (256 Кбит). Кроме того, микроконтроллер имеет встроенный контроллер внешней памяти SDRAM для дисплея. Микроконтроллер выполнен в корпусе выводного типа LQFP144. Отладочная плата оснащена сенсорным цветным QVGA TFT LCD-дисплеем диагональю 2,4² с разрешением 240×320 точек (262 тыс. цветов) и графическим ускорителем. Кроме того, на плате установлены дополнительная SDRAM-память объёмом 64 Мбит, трёхосевой гироскоп L3GD20, разъём Micro-AB для интерфейса USB OTG, шесть светодиодов, две пользовательские кнопки и встроенный программатор-отладчик ST-LINK/V2. Все свободные выводы микроконтроллера доступны на дополнительном разъёме платы.

Подробнее с отладочной платой 32F429IDISCOVERY можно ознакомиться на сайте производителя [3].

Программное обеспечение

Библиотека STemWin позволяет создавать графические пользовательские интерфейсы для микроконтроллеров серии STM32 с LCD-дисплеями, используя возможности аппаратного ускорения микроконтроллеров STM32. Библиотека находится в открытом доступе на сайте производителя [4].

STemWin представляет собой комплексное решение, предлагающее такие функции, как работа с изображениями в форматах JPG, GIF и PNG, множество виджетов в виде флажков, кнопок и т.п., VNC-сервер, позволяющий отображать локальный экран на удалённых устройствах. STemWin содержит профессиональные средства разработки, такие как GUIBuilder, для создания приложений простым перетаскиванием элементов, преобразователь шрифтов, преобразователь картинок и дизайнер пользовательского интерфейса. Внешний вид дизайнера GUIBuilder с различными графическими элементами, размещёнными на заготовке окна, представлен на рисунке 2.

Библиотека STemWin значительно облегчает процесс разработки графического интерфейса и работы с графикой на микроконтроллерах и предоставляет следующие возможности:

  • создание геометрических фигур, отображение шрифтов и картинок;
  • поддержка различных видов курсоров;
  • формирование прозрачных слоёв изображений;
  • работа с несколькими графическими буферами;
  • преобразование цветов;
  • оконный менеджер.

Примеры программ

Для выполнения рассмотренных далее примеров необходимо загрузить библиотеку STemWin [4] и разархивировать её. После этого следует запустить программу дизайнера GUIBuilder.exe, находящуюся в распакованном каталоге \STemWin_Library_V1.2.0\Libraries\STemWinLibrary532\Software. Затем необходимо создать рабочее окно для графической панели в виде элемента Framewin, кликнув по соответствующему элементу меню в верхней области окна программы GUIBuilder. Размеры окна Framewin и прочие его свойства задаются в панели свойств Property. С помощью контекстного меню, открываемого щелчком правой кнопки мыши, можно добавить в окно элементы горизонтальной и вертикальной прокрутки, задать шрифт нужного размера и цвета и т.д.

Для того чтобы поместить в окно Framewin элемент Text, необходимо выбрать соответствующий элемент меню в верхней области окна программы и аналогично задать его свойства. Исходный текст элемента следует заменить нужным, например «Hello!».

Для генерации кода программы следует выполнить операцию сохранения либо из меню File → Save, либо нажатием комбинации клавиш Ctrl+S. При этом программа создаст файл с именем FramewinDLG.c и сохранит его в том же каталоге, в котором находится программа дизайнера GUIBuilder.

Теперь остаётся лишь добавить к полученному файлу строки программы для главного модуля, приведённые в листинге 1, и выполнить компиляцию проекта в среде разработки программ, например в Keil. Образец проекта для отладочной платы в этой среде можно загрузить с сайта Keil [5].

После загрузки полученного кода программы в отладочную плату на экране LCD-дисплея платы появится текст «Hello!».

Следующий пример – отображение произвольной картинки на экране LCD-дисплея отладочной платы. В данном случае необходимо вместо текста разместить в окне Framewin дизайнера GUIBuilder элемент Image и задать его размеры с помощью панели свойств или мыши. Затем в контекстном меню этого элемента следует выбрать загрузку файла произвольной картинки в формате BMP, GIF, JPEG или PNG. Для того чтобы картинка полностью разместилась в поле дисплея необходимо, чтобы её размер в пикселях совпадал с разрешением дисплея. В данном случае размер составляет 240×320 точек. Изменить размеры картинки можно в любом графическом редакторе. Генерация кода программы и последующие действия ничем не отличаются от действий, описанных в предыдущем примере. Код программы будет содержать данные загруженной картинки в виде таблицы чисел. После загрузки полученного кода программы в отладочную плату изображение появится на LCD-дисплее.

Если интерфейс пользователя в программе организуется с применением только текстовых сообщений, можно обойтись без графического дизайнера GUIBuilder, воспользовавшись библиотекой GUI и функциями среды разработки. Пример такой программы приведён в листинге 2. Аргумент функции GUI_DispString(«Hello world!») можно заменить произвольным текстом.

Множество других готовых примеров с исходными кодами программ можно найти на сайте компании SEGGER [6]. С их помощью нетрудно научиться быстро создавать красивые и интуитивно понятные интерфейсы пользователя.

Литература


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

20.06.2018 1355 0
Комментарии
Рекомендуем

ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjd8zAXZ
ООО «ИнСАТ» ИНН 7734682230 erid = 2SDnjeDFeN3
  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться