Как упоминалось ранее микроконтроллеры LaunchPad обладают UART. Используя UART, можно посылать и принимать команды на микроконтроллер. Если вы для программирования микроконтроллера платформы LaunchPad применяли среду Energia, то для работы с UART использовался Serial Monitor. Передача данных и их прием происходил через подключенный COM-порт. К какому порту подключена платформа LaunchPad можно, узнать благодаря диспетчеру устройств.
Таким образом, используя какой-либо язык программирования, поддерживающий работу с COM-портом можно реализовать собственную программу для микроконтроллера платформы LaunchPad. Например, на Delphi или C++. Используя данные языки программирования, существует возможность реализовать графический интерфейс через, который будет осуществлять управление микроконтроллером платформы LaunchPad.
Для примера модифицируем программу мигания светодиодами в зависимости от полученных данных, используя UART.
1. Реализация программы для микроконтроллера
Для реализации программы была взята среда программирования Energia.
int const ledGreen=GREEN_LED; // определяем константы зеленного светодиода int const ledRed=RED_LED; // определяем константы красного светодиода int incomingByte = 0; // переменная для хранения вводимых данных void setup(){ Serial.begin(9600); // определения скорости передачи данных pinMode(ledGreen, OUTPUT); // установка режима для светодиода (З) pinMode(ledRed, OUTPUT); // установка режима для светодиода (К) } void loop(){ incomingByte = int(Serial.read()); if (incomingByte != -1){ // по умолчанию выводится -1 Serial.print("->"); // для того чтобы оно постоянно не мелькало, делаем условие (не обязательно) Serial.println(incomingByte, DEC); // если введено число, то оно выводится на терминал } // Узнаем, какое число было введено и в зависимости от этого // изменяем параметры светодиода. // 0 - выкл. зеленый, 1 - вкл. зеленый, // 2 - выкл. красный, 3 - вкл. красный. switch (incomingByte){ case 1 : digitalWrite(ledGreen, LOW); break; case 3 : digitalWrite(ledGreen, HIGH); break; case 7 : digitalWrite(ledRed, LOW); break; case 8 : digitalWrite(ledRed, HIGH); break; } // устанавливаем задержку 1 миллисекунду delay(100); }
2. Реализация графической программы для управления работы микроконтроллера
Для реализации поставленной задачи была выбрана среда программирования Delphi XE с установленным компонентом CPortLib , который позволяет облегчить работу с COM-портом.
Программа, не содержит не каких проверок, был реализован самый просто пример, чтобы продемонстрировать работу языка Delphi с COM-портом.
//вспомогательная структура для установки команд COM-порта TControlPacket=record red, green: Byte; end; var Form4: TForm4; strListPort: TStrings; //создаем объект для последующего заполнения подключенными COM-портами cmd : TControlPacket; //Структура команд implementation procedure TForm4.Button1Click(Sender: TObject); begin // задаем порт, выбрав его из списка подключенных портов ComPort1.Port:= ComboBox1.Items[ComboBox1.ItemIndex]; if ComPort1.Connected then ComPort1.Close //если порт открыт, закрываем его, а иначе открываем else ComPort1.Open; if ComPort1.Connected then StatusBar1.Panels[0].Text:='Порт открыт' else StatusBar1.Panels[0].Text:='Порт закрыт'; Button1.Enabled:=FALSE; Button3.Enabled:=TRUE; end; procedure TForm4.ComPort1Error(Sender: TObject; Errors: TComErrors); begin ShowMessage('Ошибка'); end; procedure TForm4.FormCreate(Sender: TObject); begin EnumComPorts(ComboBox1.Items); //Добавление существующих COM-портов в элемент ComboBox1 if ComboBox1.ItemIndex > -1 then ComPort1.Port := ComboBox1.Items[ComboBox1.ItemIndex]; end; procedure TForm4.RadioGroup1Click(Sender: TObject); begin //если выбран параметр Вкл (0) то включаем зеленый светодиод, иначе выключаем if RadioGroup1.ItemIndex=0 then cmd.green:=3 else cmd.green:=1; ComPort1.Write(cmd,SizeOf(cmd)); //отправка команды микроконтроллеру через COM-порт end; procedure TForm4.RadioGroup2Click(Sender: TObject); begin //если выбран параметр Вкл (0) то включаем красный светодиод, иначе выключаем if RadioGroup2.ItemIndex=0 then cmd.red:=8 else cmd.red:=7; ComPort1.Write(cmd,SizeOf(cmd)); //отправка команды микроконтроллеру через COM-порт end; end.
Вид приложения управления микроконтроллером. Программа предназначена для включения/выключения красного и зеленого светодиодов имеющихся на плате LaunchPad MSP430.
Таким образом происходит разработка программ с поддержкой GUI для микроконтроллеров серии MSP430. Перед запуском программы убедитесь, что у вас установлен компонент CPortLib.
