Микропроцессоры и микроконтроллеры

 
 
 
«Ограничение возможностей языка с целью предотвращения программистских ошибок в лучшем случае опасно.»
Bjarne Stroustrup
Русский | Українська


Микропроцессоры и микроконтроллеры :: JAVA и STM32 - курс экспресс-программирования с MicroEJ :: JAVA и STM32 - курс экспресс-программирования с MicroEJ. Часть седьмая

JAVA и STM32 - курс экспресс-программирования с MicroEJ. Часть седьмая

Встраиваемые системы все чаще оснащены красочными графическими дисплеями. Они обеспечивают управление и настройку устройства, а также представление данных. Это создает необходимость создания приложений на основе графических пользовательских интерфейсов. Среда MicroEJ (JAVA на STM32) содержит библиотеки, облегчающие их подготовку. В этой части серии мы покажем пример простого приложения, написанного на языке JAVA для STM32, позволяющего управлять преобразователями АЦП и ЦАП и отображать полученные результаты на дисплее набора STM32F429I-DISCO.

Подготовка платформы


Платформа, необходимая для запуска описанного приложения, должна содержать несколько модулей. К ним относятся:

     MICROUI - поддержка ввода / вывода,
     MWT - платформа для создания виджетов, таких как кнопки, ползунки, текстовые поля и т. Д.,
     SNI - вызов функции C из приложения Java.

Упомянутые модули включают в себя платформу Full, расположенную в среде MicroEJ (рисунок 1).

Платформа Full содержит модули, необходимые для этого проекта

Рис. 1. Платформа Full содержит модули, необходимые для этого проекта.

Библиотека виджетов


При создании приложения стоит использовать существующие модули и библиотеки, которые предоставляют готовые решения. Одной из них является библиотека Widgets, содержащая готовые элементы графических интерфейсов. Библиотека примеров общедоступна на github по адресу: https://github.com/MicroEJ/ExampleJava-Widget. Архив с источниками можно скачать, нажав кнопку «Загрузить ZIP» на сайте проекта.

После распаковки архива вы можете импортировать пример проекта в MicroEJ, выбрав «Файл? Импорт», и в появившемся окне выберите «Общие» Существующие проекты в рабочую область (рисунок 2).

Импорт существующего проекта в MicroEJ

Рис. 2. Импорт существующего проекта в MicroEJ

Чтобы проверить возможности библиотеки, просто запустите симуляцию, щелкнув правой кнопкой мыши по вновь импортированному проекту и выбрав «Запуск от имени? Выполнить конфигурации ...». В конфигурации виджетов STM32429I-DISCO Sim на вкладке «Выполнение» выберите предварительно подготовленную платформу и выберите параметр «Выполнить в SimJPF». В открывшемся окне симулятора вы можете протестировать пример приложения Widgets (рисунок 3). Он использует сенсорную панель, которой можно управлять с помощью мыши в симуляторе.

Пример приложения библиотеки виджетов

Рис. 3. Пример приложения библиотеки виджетов

Пример использования библиотеки виджетов


Следующим шагом является создание проекта, который использует библиотеку виджетов для управления конвертерами микроконтроллера. Это должно быть сделано, выбрав File? New? Java Project. В окне создания нового проекта введите его название и выберите необходимые модули. На этот раз они будут:

     EDC,
     MICROUI,
     МВТ,
     SNI.

Сама библиотека также должна быть добавлена в виджеты проекта, которые находятся в ранее загруженном архиве с сайта github. Вы можете сделать это, щелкнув правой кнопкой мыши по проекту и выбрав Свойства. В списке параметров выберите «Путь сборки Java» и на вкладке «Библиотеки - Добавить внешние JAR-файлы» ... Затем необходимо указать местоположение файла widgets.jar из загруженного архива (рисунок 4).

Добавление библиотеки widgets.jar в проект

Рис. 4. Добавление библиотеки widgets.jar в проект

 

Библиотека Widgets содержит готовые компоненты для создания сложных пользовательских интерфейсов, основанных, среди прочего, на для графических дисплеев и сенсорных панелей. В дополнение к компонентам, которые пользователь использует для взаимодействия с приложением, таким как кнопки и ползунки, библиотека также предоставляет объекты, помогающие в их развертывании на экране.

В листинге 1 приведен пример кода, генерирующего меню для нужд двух преобразователей: ЦАП и АЦП. Все меню создано в основном методе.