- Настройка IDE Arduino
- Настройка платы STM8S103F3 для программирования Arduino IDE
- Светодиод мигает на STM8S103F3 с использованием Arduino
- Назначение контактов Arduino для STM8S103F3
- Компиляция библиотек SPL в Arduino IDE
Arduino, несомненно, превратился в удобный и быстрый инструмент для создания прототипов благодаря своему поддерживающему сообществу пользователей. Сегодня, из-за своей природы с открытым исходным кодом, платформа ограничена не только платами Arduino, но и другими платами разработки, такими как NodeMCU, ESP8266, STM32, MSP430 и т. Д., Также можно программировать из Arduino IDE. Если вам интересно узнать, как это сделать, вы можете перейти по ссылкам ниже.
- Программирование NodeMCU с помощью Arduino IDE
- Программирование ESP8266 с помощью Arduino IDE
- Программирование STM32 с помощью Arduino IDE
- Программирование MSP430 с помощью Energeia (аналогично Arduino)
Без сомнения, IDE Arduino отлично подходит для новичков, но все же для профессионального развития хорошо работать с собственными средами разработки и компиляторами. Как MPLABX для микроконтроллеров PIC и студия Code Composer для микроконтроллеров TI. Использование собственной платформы позволяет нам работать на уровне регистров (даже на уровне сборки, если требуется), что позволяет программе более эффективно использовать память. Вот почему, когда мы начали руководство по микроконтроллеру STM8SВ качестве платформы были выбраны STVD и компилятор Cosmic C, которые можно бесплатно загрузить и использовать. К сожалению, STVD - очень старая IDE, и при работе с ней кажется, что это 90-е годы. Вдобавок ко всему, инструмент программиста STVP также плохо интегрирован с IDE, и вам придется использовать его отдельно. Это увеличивает время компиляции и загрузки и затрудняет разработку и отладку.
Я отправился на поиски альтернатив, и именно тогда на помощь пришла Arduino IDE. Инструмент под названием Sduino от Майкла Майора позволяет нам легко программировать микроконтроллеры STM8 (большинство из них) напрямую из Arduino IDE, и для его настройки и начала работы требуется всего несколько минут. Более интересно то, что помимо поддержки программирования в стиле Arduino, Sduino также позволяет нам использовать стандартную периферийную библиотеку (SPL), другими словами, мы можем почти скомпилировать ту же программу на STVD в Arduino IDE. Хотя Sduino - отличный инструмент, он все еще находится в разработке и еще не поддерживает многие библиотеки и функции Arduino. При этом давайте узнаем, как использовать Arduino IDE с платой разработки STM8S103F.Если вы совершенно не знакомы с этой платой, то ознакомьтесь с руководством по началу работы с STM8S103F. Помимо STM8S103F, Sduino также поддерживает другие микроконтроллеры STM8S, такие как STM8S003, STM8S105C, STM8S105K, STM8S, STM8S208MB, ESP14 и т. Д. Процедура, описанная в этом руководстве, одинакова для всех.
Настройка IDE Arduino
Шаг 1. Если вы совершенно не знакомы со средой Arduino, загрузите Arduino на основе вашей операционной системы и установите ее.
Шаг 2: Перейдите в меню «Файл» -> «Настройки», чтобы открыть окно настроек, и вставьте ссылку, приведенную ниже, в текстовое поле «Управление дополнительными досками» и нажмите «ОК».
github.com/tenbaht/sduino/raw/master/package_sduino_stm8_index.json
Шаг 3: Выберите Инструменты -> Доска -> Менеджер доски, чтобы открыть диалоговое окно менеджера доски, и найдите «sduino». Нажмите на установку и закройте диалоговое окно после завершения установки.
Шаг 4: Перезагрузите среду IDE и выберите Инструменты -> Плата -> STM8S103F3 . Вы можете выбрать другие платы, если у вас другая плата для разработки.
Теперь IDE Arduino готова для программирования платы разработки STM8S103F3. Давайте настроим плату, подключим ее к компьютеру и запрограммируем на простое мигание светодиода.
Настройка платы STM8S103F3 для программирования Arduino IDE
Подключите ST-Link V2 к плате разработки, как показано ниже.
Подключения довольно просты, и, что самое приятное, вам не нужны внешние компоненты. Моя аппаратная установка для программирования показана ниже, я только что использовал соединительные провода для подключения. Однако обратите внимание, что распиновка вашего ST-Link может отличаться от моей, убедитесь, что вы соблюдаете распиновку на устройстве, прежде чем выполнять подключения.
Выполните подключение и подключите устройство к компьютеру, установка драйвера должна начаться автоматически. Вы можете использовать диспетчер устройств, чтобы убедиться, что ваш компьютер правильно обнаружил ST-LINK V2. Вы также заметите, что индикатор проверки на плате мигает, если это первый раз, когда плата включается.
Светодиод мигает на STM8S103F3 с использованием Arduino
Теперь для простого мигания светодиода мы можем использовать программу мигания из раздела примеров. Следуйте File -> Example -> Generic_Example -> Basics -> Blink .
Полная программа для мигания встроенного светодиода показана ниже:
void setup () {// инициализируем цифровой вывод LED_BUILTIN как выход. pinMode (LED_BUILTIN, OUTPUT); } // функция цикла выполняется снова и снова навсегда void loop () {digitalWrite (LED_BUILTIN, HIGH); // включаем светодиод (HIGH - уровень напряжения) delay (1000); // ждем второй digitalWrite (LED_BUILTIN, LOW); // выключить светодиод, сделав напряжение LOW delay (1000); // ждем секунду}
Как видите, это очень похоже на программу мигания Arduino. Чтобы загрузить программу, убедитесь, что ваша плата подключена через st-link v2, как описано выше, и выберите программатор «ST-Link / V2», как показано ниже.
Примечание. В отличие от плат Arduino, вам не нужно выбирать правильный COM-порт для программирования платы. Вы будете использовать COM-порт только для последовательной связи.
После выбора COM-порта загрузка кода также очень проста. Просто нажмите кнопку загрузки (обведена красным ниже), и код будет автоматически скомпилирован и загружен на нашу доску.
Вот и все, программа загружается прямо на плату, и вы должны увидеть, как на плате мигает светодиод. Никакого внешнего программного обеспечения для загрузки, ничего. Это так просто. Вы можете посмотреть видео внизу этой страницы, чтобы узнать о работе.
Назначение контактов Arduino для STM8S103F3
Если вы хотите продолжить, вам нужно знать, как адресовать каждый вывод на плате разработки STM8S103F3. Расположение контактов можно понять из этого изображения ниже -
Например, из принципиальной схемы платы STM8S103F3 мы знаем, что встроенный светодиод подключен к PB5. Чтобы адресовать этот вывод на Arduino, мы должны использовать 3, поэтому программу можно записать как
void setup () {// инициализируем цифровой вывод LED_BUILTIN как выход. pinMode (3, ВЫХОД); } // функция цикла выполняется снова и снова навсегда void loop () {digitalWrite (3, LOW); // включаем светодиод (HIGH - уровень напряжения) delay (1000); // ждем второго digitalWrite (3, HIGH); // выключить светодиод, сделав напряжение LOW delay (1000); // ждем секунду}
Компиляция библиотек SPL в Arduino IDE
Как упоминалось ранее, мы также можем использовать библиотеку SPL в Arduino IDE. Если вы помните, в нашем предыдущем руководстве по STM8S GPIO мы написали код для мигания встроенного светодиода, а также внешнего светодиода с помощью кнопки. Тот же код с небольшими изменениями также можно скомпилировать на Arduino. Измененный код показан ниже.
#define Green_LED GPIOA, GPIO_PIN_3 void setup () {GPIO_DeInit (GPIOA); // подготавливаем порт A для работы GPIO_DeInit (GPIOB); // подготавливаем порт B к работе // объявляем PA2 как входной вывод для подтягивания GPIO_Init (GPIOA, GPIO_PIN_2, GPIO_MODE_IN_PU_IT); // Объявить PA3 как вывод Push Pull Output GPIO_Init (Green_LED, GPIO_MODE_OUT_PP_LOW_SLOW); // Объявить PB5 как push pull Выходной контакт GPIO_Init (GPIOB, GPIO_PIN_5, GPIO_MODE_OUT_PP_LOW_SLOW); } void loop () {if (GPIO_ReadInputPin (GPIOA, GPIO_PIN_2)) // если кнопка нажата GPIO_WriteLow (Green_LED); // светодиод горит else GPIO_WriteHigh (Green_LED); // светодиод выключен GPIO_WriteReverse (GPIOB, GPIO_PIN_5); задержка (100); }
В заключение, IDE Arduino вместе с Sduino - очень хороший вариант, если вы хотите быстро начать разработку с STM8S. Однако платформа все еще находится в стадии разработки, и многие библиотеки Arduino еще не поддерживаются. Тем не менее, если вы хотите углубиться и внести свой вклад в разработку, это было бы здорово. Но ради обучения я продолжу серию руководств по STVD и космическому компилятору C.