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

 
 
 
«Человеку свойственно ошибаться, но для нечеловеческих ошибок нужен компьютер»
Русский | Українська


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

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

Задержка между изменениями состояния диода выполняется методом Thread.sleep (long milis), который принимает количество миллисекунд потока, в котором был вызван поток. Кроме того, он должен находиться в блоке try-catch, потому что если сон прерывается, он отправляет вызывающей стороне исключение, которое необходимо обработать.

Изменение состояния диода также может быть выполнено в ответ на событие кнопки, как показано на кнопке executeAction executeAction (листинг 4).

public void performAction(int value) {
        System.out.println("Got event number "+value);
        int action = Buttons.getAction(value);
        switch (action) {
        case Buttons.PRESSED:
            System.out.println("Button PRESSED");
            Leds.setLedOn(1);
            break;
        case Buttons.RELEASED:
            System.out.println("Button RELEASED");
            Leds.setLedOff(1);
            break;
        default:
            break;
        }
}

Листинг 4. Поддержка светодиодов в методе ButtonAistener executeAction

Перед запуском примера стоит упомянуть, что во время симуляции информация о платформе (в данном случае количество светодиодов и кнопок) берется из файла * -fp? Definitions? Frontpanel.pl. С другой стороны, при работе в физической системе информация о платформе берется из файлов платформы * -bsp.

Начиная с оценочного набора

Пока что приложение создано для нужд симулятора. Чтобы включить его в физической системе, в конфигурации (Запуск от имени? Запуск конфигураций ...) на вкладке Выполнение выберите параметр Выполнить в EmbJPF. После успешной компиляции вы можете запустить среду Keil, щелкнув * -bsp \\ Project \\ MicroEJ \\ MDK-ARM \\ Project.uvproj, и собрать источники в C, выбрав Project? Build target. После завершения вы можете подключить оценочный набор STM32F429I-DISCO к вашему компьютеру и выбрать Flash? Download. Программа должна запуститься автоматически.

В этом примере используется операционная система RTX, а виртуальная машина Java запускается как ее задача. Это можно увидеть в файле main.c и главной функции, где вызывается функция os_sys_init_user (javaTask, 10, & javaTaskStack, sizeof (javaTaskStack)). Среди источников вы также можете найти файлы buttons.c, которые включают в себя функции конфигурации, обработку прерываний и пересылку событий на более высокий уровень приложений, и LLLEDS.c, где есть функции, информирующие о количестве настроенных диодов и изменении их состояния.

Во время работы приложения в обычном режиме все функции printf (на языке C) и System.out.println (на Java) перенаправляются на выход последовательного порта USART2. Однако вы можете настроить отладчик так, чтобы вы могли наблюдать за сообщениями без необходимости подключения последовательного порта. Чтобы изменить функцию fputc в файле putchar.c, изменив последнюю строку (return ch) на вызов (return (ITM_SendChar (ch))), а в конфигурации (Project? Options for target) включите опцию Enable Trace и установите соответствующую тактовую частоту ( 180 МГц) - рисунок 6.

Включение консоли во время отладки

Включение консоли во время отладки
Рис. 6. Включение консоли во время отладки

Кстати к программированию и разработке софта, если вас интересует "KMSAuto NET" скачать его вы можете по ссылке скачать KMSAuto Net

Сообщения функции printf во время отладки
Рис. 7. Сообщения функции printf во время отладки


По умолчанию линия данных интерфейса SWD на плате отключена от процессора. Его можно подключить с помощью короткого замыкания моста SB9 или путем соединения контакта 6 разъема CN2 с контактом PB3 процессора.

Чтобы наблюдать за сообщениями, войдите в режим отладки из списка серий Windows, выберите Debug (printf) Viewer (рисунок 7).