Разработана программа с целью обучения и быстрого создания программ для управления робототехническими комплексами или электропреобразовательными установками. Программа представляет собой приложение для персонального компьютера (ПК) с операционной системой (ОС) Windows 10 и выше, разрядностью 64-бит, (версия 32-бит проверялась на Windows 7), позволяющее визуально создавать конфигурацию периферийных устройств микроконтроллеров (МК) STM8S103/STM8S105, что позволяет ускорить процесс создания “прошивки” для МК и (или) уменьшить количество ошибок при разработке. Программа по созданной визуально конфигурации, путем выбора из заданных альтернатив, ввода числовых значений и контроля правильности ввода (предупреждает об ошибках), формирует файлы проекта для программирования МК на языках C (с библиотекой SPL или программирование на уровне регистров) и Assembler (язык выбирается в настройках программы). Позволяет сохранить созданную конфигурацию в файл для использования в дальнейшем. Имеется необходимая справочная информация по МК, SPL, C упрощающая создание кода. Созданные файлы проекта можно перед отправкой в IDE редактировать в сразу этой программе.

Ключевые слова: РОБОТОТЕХНИКА, МИКРОКОНТРОЛЛЕР, STM8S, STM8, ПРОШИВКА, ЭЛЕКТРОЭНЕРГЕТИКА, ПРЕОБРАЗОВАТЕЛЬ, ПРОГРАММА, ОБУЧЕНИЕ, ПРОГРАММИРОВАНИЕ.

 

Скачать программу Конфигуратор микроконтроллеров STM8S103/105.

Ссылка на скачивание - https://disk.yandex.ru/d/rGRHUb-DxaQgGg

 

Введение

Как известно, разработка встраиваемых систем для управления робототехническими комплексами или электропреобразовательными установками в настоящее время является сложной и актуальной задачей. В процессе обучения студентов по дисциплине “Применение микроконтроллеров для разработки устройств”, “Применение микроконтроллеров STM для разработки устройств” возникла необходимость в создании программы, содержащей максимально возможную информацию о микроконтроллерах STM8S, изучаемых на практических занятиях, и лабораторных работах с возможностью создания визуально конфигурации МК и автоматическому созданию проекта с кодом на языке С или С++ с применением библиотеки SPL [1] от фирмы ST [2] или на языке Assembler. Полученный проект предназначен для известных IDE используемых при разработке и отладке кода для МК STM8, например, IAR [3], STVD [4]. Дальнейшая разработка и отладка кода происходит в перечисленных выше IDE. На разработанную программу получено авторское свидетельство [5].

1.     Основные свойства и области применения программы “Конфигуратор микроконтроллеров STM8S103/105”

В настоящее время, для облегчения быстрой разработки кода управления МК почти каждая фирма выпускает к своему микроконтроллеру специальную программу, позволяющую конфигурировать визуально микроконтроллер и получать код на языке С или С++. У фирмы ST, выпускающей МК серии STM есть такой продукт под названием QubeMX [6]. В этой программе пользователь выбирает модель МК, получает его изображение с обозначением функций выводов, затем пользователь выбирает, какие периферийные устройства МК он хочет включить, настраивает источник тактирования и сразу видит к каким выводам МК подключена выбранная периферия, видит какие выводы МК заняты, какие свободны, что позволяет удобно и быстро спроектировать устройство на МК и избежать ошибок. Имеются варианты программы QubeMX для 8-ми разрядных МК – STM8QubeMX и для 32-х разрядных МК – STM32QubeMX. Однако, если программа STM32QubeMX позволяет получить очень удобный код на языке C, C++ для дальнейшей разработки прошивки МК в IDE QubeMX, то программа STM8QubeMX такой возможности не имеет (она выдает только список конфигурации в виде электронного документа), что не дает такого упрощения в разработке кода для МК STM8, что является элементом трудности освоения МК для начинающих. Это подтолкнуло к разработке собственной программы для обучения студентов работе c STM8S и применения для разработки кода, позволяющей визуально сконфигурировать МК, сохранить конфигурацию в файл и считать созданную ранее, создать по конфигурации код на языке C, C++. Программа сделана для МК STM8S103F3P6 и МК STM8S105C6T6, которые используются в учебном процессе, однако, применяемая библиотека SPL охватывает все семейство МК STM8S и при достаточном опыте, благодаря тому, что МК разных моделей STM8S выполнены по единому образу, полученные программы на языке C, C++ возможно быстро адаптировать и под другие модели МК STM8S.

2. Краткое описание программы “Конфигуратор микроконтроллеров STM8S103/105”

После запуска программы появляется основное окно, изображенное на рисунке 1.

Рисунок 1 – Основное окно программы “Конфигуратор микроконтроллеров STM8S103/105”
Рисунок 1 – Основное окно программы “Конфигуратор микроконтроллеров STM8S103/105”

В программе (рисунок 1) имеется строка основного меню - 1, кнопка создания “прошивки” для МК - 2, строка верхних закладок - 3, основное поле - 4, строка нижних закладок - 5.

В основном меню 1 пользователь выбирает тип МК, в верхней строке закладок 3 – структурную схему МК, корпус (можно вызвать даташит на выбранный МК), схему карты памяти, схему подключения МК (минимально необходимые элементы для работы и программирования МК).

В основном поле – 4 пользователь видит изображение корпуса МК с обозначением выводов, максимальную (вверху) и текущую (внизу) частоту тактирования, размер FLASH, RAM, EEPROM памяти. В процессе настройки здесь изображаются изменения в подключенных устройствах МК, тактовой частоте МК и предупреждения о необходимости изменять конфигурационные биты.

В строке нижних закладок – 5 пользователь может выбрать необходимые режимы работы – посмотреть документы по МК, выполнить настройки МК, посмотреть и, если необходимо, исправить или добавить файлы проекта прошивки МК и помощи по программированию, посмотреть инструкции по МК.

Для настройки выбранного в строке 1 МК необходимо перейти в закладку “Настройки МК” – 5 (рисунок 1) и получить закладку “Настройки МК” (рисунок 2).

Рисунок 2 – Закладка “Настройки МК” программы “Конфигуратор микроконтроллеров STM8S103/105”
Рисунок 2 – Закладка “Настройки МК” программы “Конфигуратор микроконтроллеров STM8S103/105”

В закладке “Настройки МК” программы “Конфигуратор микроконтроллеров STM8S103/105” в верхней строке закладок можно выбрать периферийные устройства МК (CHIP(CLK), TIMx (TIM1, TIM2, TIM3, TIM4), UART, ADC, I2C, SPI, BEEP, AWU, IWDG, WWDG, GPIO) и несколько дополнительных функций – формирование синусоидального однофазного, двухфазного и трехфазного ШИМ (PWM) сигнала таймерами МК, подключение цифрового датчика температуры DS18B20 по интерфейсу 1-wire, подключение жидкокристаллического (ЖК) индикатора LCD16x2, подключение датчика атмосферного давления и температуры BMP180 по интерфейсу I2C, подключение дополнительных функций задержки – с применением прерываний и таймера и простой с применением цикла.

Путем выбора нужной закладки пользователь визуально формирует конфигурацию МК, для примера на рисунке 3 изображена закладка конфигурирования таймера TIM2 для генерации простой ШИМ (частота фиксирована, меняется скважность импульсов), канал 1. При настройке периферийного устройства МК предусмотрена, при необходимости, настройка прерываний, вызываемых этим устройством.

Рисунок 3 – Закладка конфигурирования TIM2 программы “Конфигуратор микроконтроллеров STM8S103/105”
Рисунок 3 – Закладка конфигурирования TIM2 программы “Конфигуратор микроконтроллеров STM8S103/105”

В процессе конфигурирования программа следит за ошибками пользователя, предупреждает о них и не дает сделать не правильный выбор. Например, в МК на один и тот же вывод может подключаться несколько периферийных устройств, программа отслеживает занятость всех выводов МК и в случае попытки дублирования предупреждает о занятости вывода выбранным периферийным устройством МК.

Выполнив конфигурирование, пользователь может сохранить конфигурацию в файл, для возможности к ней вернуться и перейти на закладку “Документы МК” – “Корпус” и увидеть, к каким выводам подключены сконфигурированные устройства, в нашем случае каналы 1, 2,3 таймера TIM2 – рисунок 4 (обведены оранжевыми эллипсами). Зеленым текстом обозначаются выводы, которые сконфигурированы пользователем, черным те, что были по умолчанию.

Рисунок 4 – Закладка “Документы МК” программы “Конфигуратор микроконтроллеров STM8S103/105”
Рисунок 4 – Закладка “Документы МК” программы “Конфигуратор микроконтроллеров STM8S103/105”

Обратите внимание на надпись внизу МК (рисунок 4) “Конфигурационные биты менять!!!” и рядом с выводом 13 МК надпись такого же цвета “[AFR3]=1”. Это означает, что обязательно необходимо в программе IDE настроить конфигурационный бит AFR3=1, по умолчанию все биты AFRx=0. Очень часто начинающие программисты МК STM8S забывают настроить или проверить значения битов AFRx и при правильно написанной программе МК не работает как необходимо, например, не включен выход TIM1, канал 1, генерация идет, а на выводе сигнала нет. Разработанная программа, предупреждая о необходимости изменения значений AFRx, предотвращает такие ошибки. Одновременно происходит настройка соответствующих выводов GPIO в закладке “GPIO” (рисунок 3), такую настройку начинающие программисты часто забывают сделать.

После конфигурирования, проверки, для получения кода “прошивки” необходимо нажать на кнопку “Обновить “прошивку” для микроконтроллера” 2 – рисунок 1. Мы получаем код на языке C, C++ с необходимыми поясняющими комментариями на русском языке.

Рисунок 5 – Закладка “Файлы “Прошивки” МК” программы “Конфигуратор микроконтроллеров STM8S103/105”
Рисунок 5 – Закладка “Файлы “Прошивки” МК” программы “Конфигуратор микроконтроллеров STM8S103/105”

В верхней закладке (рисунок 5) можно посмотреть пользовательские файлы, входящие в проект (“main.c” – главный файл, “main.h” – файл главных описаний, может не использоваться, “stm8s_it.c” – файл прототипов функций прерываний, “stm8s_it.h” - файл описаний для прототипов функций прерываний, “stm8s.h” – основной файл описания библиотеки – используется при программировании МК, здесь имена регистров, флагов, переменных) и файлы помощи (“readme.txt” – содержит описание МК, таблицу выводов, помощь пользователю, “Переменные, Помощь” – не входит в проект, описывает переменные, “Регистры, Помощь” – не входит в проект, описывает правила обращения к регистрам), “C++, Помощь” – помощь по языку С++ или С для МК (файл взят у Cosmic). Далее, пользователь сохраняет папку с проектом и библиотекой SPL на диск в папку с файлами программы “MyProjects”. После этого, проект можно открывать в IDE, например, IAR и проводить отладку или “прошивку” МК.

В полученном проекте все комментарии в файлах библиотеки SPL для STM8S от ST переведены с английского языка на Русский с помощью ИИ GigaChat [7].

В процессе работы с библиотекой и МК была обнаружена небольшая, но досадная ошибка библиотеки. В основном файле библиотеки SPL V2.3.0 – “stm8s.h” были написаны следующие строки с номерами 99 – 113 (ниже приведен оригинал):

“/**

  * @brief  In the following line adjust the value of External High Speed oscillator (HSE)

   used in your application

   Tip: To avoid modifying this file each time you need to use different HSE, you

        can define the HSE value in your toolchain compiler preprocessor.

  */

#if !defined  HSE_Value

 #if defined (STM8S208) defined (STM8S207) defined (STM8S007) defined (STM8AF52Ax) \

     defined (STM8AF62Ax) || defined (STM8AF622x)

  #define HSE_VALUE ((uint32_t)24000000) /* Value of the External oscillator in Hz*/

 #else

  #define HSE_VALUE ((uint32_t)16000000) /* Value of the External oscillator in Hz*/

 #endif /* STM8S208 STM8S207 STM8S007 STM8AF62Ax STM8AF52Ax || STM8AF622x */

#endif /* HSE_Value */ “

 

Смысл этого кода в том, что, если не определена переменная “HSE_Value” (частота внешнего кварцевого/керамического резонатора или генератора), то она определяется как “#define HSE_VALUE ((uint32_t)16000000)” или “#define HSE_VALUE ((uint32_t)24000000)” для разных МК.

В случае использования другой частоты кварцевого/керамического резонатора или генератора необходимо исправлять в этих строках файла “stm8s.h” значение на свою частоту, для соответствующего МК. Если используется внешний кварцевый/керамический резонатор с частотой 16 МГц, то все нормально, ни чего трогать не надо. Однако, если используется частота отличная от 16 МГц советуют, чтобы не испортить файл “stm8s.h”, в своей программе самому прописать это значение - “#define HSE_VALUE ((uint32_t)12000000)” в строке перед подключением файла “stm8s.h” в файле “main.h” (“#include "stm8s.h"”), например, для кварца 12 МГц. Но в этом случае возникает ошибка трансляции (“Warning[Pe047]: incompatible redefinition of macro "HSE_VALUE" (declared at line 40 of "O:\CodeVisionSTM8S_BuilderXE\!Регистрация\Ver36_x64_X11_registers_docs\Win64\Debug\MyProjects\Project\”).

Для исключения этой ошибки необходимо в строке с номером 106 в выражении “#if !defined HSE_Value” исправить “HSE_Value” на “HSE_VALUE”.

Эта ошибка исправлена в библиотеке SPL V2.3.0, используемой в проекте создаваемом программой.

В разработанной программе, кроме получения кода на языке С, С++ с помощью SPL (в SPL функциях добавлены проверки правильности ввода переменных, что увеличивает размер кода) возможно получить более компактный код на языке С, С++ но с прямым управлением регистрами и еще более компактный на языке Assembler (нет в демо версии).

Код, который создает разработанная программа, проверялся на специально созданном, с помощью макетной платы размером 50х70 мм., макете, содержащем МК STM8S103F3P6 (помещенную в разъем для микросхемы DIP с 40 выводами (запас выводов создан для возможной замены, в дальнейшем, демонстрационной оплаты STM8S на демонстрационную плату STM32F411CCU6, которая займет все 40 выводов)), 4 кнопки, 3 светодиода плюс 1 на демонстрационной плате МК, звуковой излучатель (снизу макета), 2 переменных резистора (10 кОм) для работы с АЦП, кварцевый резонатор 16 МГц с шунтирующими конденсаторами. Две гребенки для подключения к МК и две для подключения периферийных устройств к GND и VDD. Соединения осуществляются проводниками Duepont мама-мама. Фотография макета приведена на рисунке 6. При разработке макета использовалась программа EasyEda [8].

Рисунок 6 – Макет для проверки и отладки кода, созданного программой “Конфигуратор микроконтроллеров STM8S103/105” (размеры 50х70 мм.)
Рисунок 6 – Макет для проверки и отладки кода, созданного программой “Конфигуратор микроконтроллеров STM8S103/105” (размеры 50х70 мм.)

Примеры кода, созданные на базе примеров из библиотеки SPL и адаптированные под описанный макет, имеются в программе, в архивированном виде, открываются кнопкой “Открыть папку с архивом примеров”

Код, создаваемый программой для МК STM8S105C6T6 проверялся на демонстрационной плате от ST – STM8S-DISCOVERY [9].

3. Перспективы развития и применения

Планируется развивать и избавлять программу от багов и ошибок, добавить поддержку МК типа STM8L и нескольких других МК серии STM8S207 и STM8S208. Разработанную программу вместе с макетом планируется использовать для обучения студентов на практических и лабораторных занятиях по разработке устройств с применением МК STM8S.

В дальнейшем, планирую создать видеоуроки по эффективному использованию программы.

Заключение

Созданная программа позволяет:

1.                 Получить в одном месте полное описание МК STM8S, его характеристик и параметров, необходимых для разработки эффективного кода.

2.                 Уменьшить ошибки начинающих программистов МК в коде при конфигурировании периферийных устройств МК.

3.                 Использовать программу и макет при обучении студентов – проведении лекционных, практических и лабораторных работ.

4.                 Использовать программу и макет в дипломном проектировании.

5.                 Ускорить самостоятельное изучение МК STM8S.

6.                 Ускорить разработку кода для МК STM8S опытными пользователями.

 

Скачать программу Конфигуратор микроконтроллеров STM8S103/105.

Ссылка на скачивание - https://disk.yandex.ru/d/rGRHUb-DxaQgGg

 

Список литературы

1.                 Библиотека SPL для микроконтроллеров STM8 фирмы ST. URL: https://www.st.com

2.                 Официальный сайт фирмы ST. URL: https://www.st.com

3.                 IAR Embedded Workbench для STM8. URL: https://www.st.com/en/partner-products-and-services/iar-embedded-workbench-for-stm8-functional-safety.html

4.                 ST Visual — среда разработки для создания приложений на базе ST7 и STM8. URL: https://www.st.com/en/development-tools/stvd-stm8.html

5.                 Номер регистрации (свидетельства): 2025618440, дата регистрации: 03.04.2025, правообладатель: Горемыкин Евгений Викторович (RU).https://fips.ru/EGD/7b3f6235-756d-4f04-b8a2-685d227011c6

6.                 Инструмент для настройки и составления отчётов STM8Cube URL:

7.                 Русскоязычная нейросеть от Сбера GigaChat. URL:https://giga.chat/

8.                 Бесплатное ПО для проектирования печатных плат EasyEDA. URL: http://easyeda.com/

9.                 Демонстрационная плата STM8S-DISCOVERY. URL: https://www.st.com/resource/en/user_manual/um0817-stm8sdiscovery-stmicroelectronics.pdf

 

Редакция 13.01.2026г.

Комментарии (2)


  1. mozg37
    13.01.2026 17:55

    Имеет ли смысл вообще начинать обучать этим санкционным мк, если полно китайских 32разрядных?


    1. hardegor
      13.01.2026 17:55

      Принципы-то одинаковы, а у них наверняка есть лаборатории, методички, преподы и все остальное под stm. Переделывать все не один год уйдёт.