Микроконтроллер STM8S105K4, известный своей эффективностью и универсальностью, является надежным выбором для встраиваемых приложений в бытовой электронике и промышленных системах. В этой статье представлен обзор его основных характеристик, конфигурации выводов и блок-схемы, а также пошаговое руководство по настройке проекта в IAR Embedded Workbench. С помощью примеров кода для базового управления GPIO и инструкций по программированию и отладке это руководство поможет вам быстро и эффективно начать работу с STM8S105K4.
Обзор
STM8S105K4 — это 8-разрядный микроконтроллер от STMicroelectronics, входящий в семейство STM8. Он разработан для широкого спектра применений и обеспечивает баланс между производительностью, энергоэффективностью и доступностью. Благодаря усовершенствованным периферийным устройствам и встроенной EEPROM, STM8S105K4 подходит для задач общего назначения в бытовой электронике, промышленных системах и т. д.
Характеристики и технические данные
- Ядро: 8-разрядное ядро STM8 с архитектурой Гарварда, работающее на частоте до 16 МГц.
- Память:
- Флэш-память: 16 КБ
- Оперативная память: 1 КБ
- EEPROM: 640 байт
- Таймеры:
- 16-разрядный таймер расширенного управления (TIM1)
- 16-разрядный таймер общего назначения (TIM2)
- 8-разрядный базовый таймер (TIM4)
- Коммуникационные интерфейсы:
- Интерфейсы UART, I²C и SPI для универсальной связи.
- Аналоговые функции:
- 10-разрядный АЦП с количеством каналов до 5
- Внутренний эталон напряжения для повышенной точности аналоговых измерений
- GPIO:
- Несколько выводов ввода/вывода с программируемыми настройками подтяжки, типа вывода и скорости
- До 38 портов ввода/вывода (в зависимости от корпуса)
- Рабочее напряжение: от 2,95 В до 5,5 В
- Диапазон температур: от -40 °C до +85 °C (промышленный класс)
- Корпус: доступен в корпусе LQFP32 и других компактных вариантах корпуса.
Конфигурация контактов
STM8S105K4 предоставляет до 48 выводов ввода/вывода в зависимости от корпуса, которые могут быть настроены для различных функций, таких как вход АЦП, выход ШИМ, UART, SPI, I²C и универсальный цифровой ввод/вывод. Ключевые выводы GPIO включают:
- Порт A (PA0–PA7): настраиваемый для цифрового ввода-вывода и альтернативных функций.
- Порт B (PB0–PB7): в основном используется для ввода/вывода с определенными контактами, поддерживающими альтернативные функции.
- Порты C, D и E: поддержка дополнительных входов/выходов, аналогового входа и функций таймера, включая генерацию ШИМ.

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

Блок-схема STM8S105K4 включает:
- Ядро: ядро STM8 с управлением тактовой частотой, программным счетчиком и АЛУ для 8-разрядной обработки.
- Блоки памяти:
- Флэш-память для хранения кода
- EEPROM для хранения данных
- SRAM для общего назначения
- Периферийные устройства:
- АЦП для обработки аналоговых сигналов
- Таймеры (TIM1, TIM2 и TIM4) для синхронизации событий, ШИМ и генерации сигналов
- Коммуникационные интерфейсы (UART, SPI и I²C) для подключения датчиков, дисплеев и других модулей
- Управление системой:
- Блок генерации тактовой частоты с внутренними и внешними источниками тактовой частоты
- Таймер сторожевого таймера для обеспечения надежности системы
- Блок управления питанием с режимами низкого энергопотребления
- Управление вводом-выводом: Конфигурация и управление GPIO для взаимодействия с внешними устройствами
Эта модульная архитектура обеспечивает гибкость при выполнении различных задач, от управления в реальном времени до последовательной связи.
Приложения
Микроконтроллер STM8S105K4 идеально подходит для широкого спектра применений, в том числе:
- Бытовая электроника: бытовая техника, пульты дистанционного управления и управление дисплеями
- Промышленное управление: управление двигателями, системы HVAC и модули PLC
- Автомобильная промышленность: интерфейсы датчиков, управление приборной панелью и системы освещения
- Здравоохранение: медицинские устройства, системы мониторинга и портативное медицинское оборудование
- Устройства IoT: интеллектуальные датчики, беспроводные модули и счетчики энергии
Благодаря сочетанию аналоговых, цифровых и коммуникационных функций, STM8S105K4 позволяет разработчикам создавать эффективные, универсальные и экономичные встроенные системы для различных отраслей промышленности.
Создание проекта IAR для STM8S105K4
В этом примере мы создадим проект IAR для зажигания светодиода с помощью микроконтроллера STM8S105K4.
Необходимые инструменты
Аппаратные компоненты:
- Микроконтроллер STM8S105K4
- Отладчик и программатор ST-LINK/V2
- Плата разработчика STM8S105K4 (опционально)
- Светодиод и резистор (1 кОм)
- Макетная плата и соединительные провода
Программные инструменты:
- IAR Embedded Workbench для STM8
- ST Visual Programmer (STVP)
Шаги по созданию проекта
Создать папку проекта:
- Создайте папку с именем
test, а в ней создайте еще одну папку с именемuser.
- Создайте папку с именем
Откройте IAR Embedded Workbench:
- Откройте IAR для STM8 (версия 9.40.2).
Создать новый проект:
- Перейдите в
Project->Create New Project. - В диалоговом окне выберите
STM8 Series->Empty projectи нажмитеOK. - Сохраните
.ewpфайл в папкеtest/userпапке и назовите егоtest.
- Перейдите в

Добавить группу проектов:
- Выберите меню и нажмите
Project->Add Group. - Назовите группу
user, а затем нажмитеOK.
- Выберите меню и нажмите

Создайте главный файл:
- Перейдите в
File->New->File, затем сохраните его какmain.c. - Добавить
main.cкuserгруппу.
- Перейдите в

Настройка среды IAR
Параметры проекта:
- Наведите курсор и щелкните
Project->Options.
- Наведите курсор и щелкните
Установить целевое устройство:
- В
General Options->Target->DeviceвыберитеSTM8S105K4(или конкретную модель вашего устройства).
- В

Настройка путей включения:
- В
C/C++ Compiler->Preprocessorдобавьте путь"$PROJ_DIR$\..\user". - Этот синтаксис указывает путь к файлу включения в каталоге проекта.
- В

Настройка отладчика:
- В
Debugger->SetupустановитеDriverнаST-LINK. - Нажмите
OK, чтобы сохранить конфигурацию.
- В

Добавьте код и скомпилируйте проект:
- В
main.cвведите следующий код, затем перейдите вProject->Rebuild All. - Если вы видите
Total number of errors: 0иTotal number of warnings: 0, проект настроен правильно.
- В

Включить заголовочный файл:
- Убедитесь, что заголовочный файл
IOSTM8S105K4.hдоступен в каталоге установки IAR:Software (E:) > IAR for STM8 > arm > inc > ST.
- Убедитесь, что заголовочный файл

Написание, загрузка и отладка кода
Следующий код переключает светодиод, подключенный к выводу PE5, с помощью цикла задержки, чтобы светодиод мигал.
#include "iostm8s105k4.h" // Ensure this header file exists in your project
int main(void) {
int i, j; // Variables for delay loop
// Configure PE5 as an output pin
PE_DDR |= 0x20; // Set bit 5 of PE_DDR (PE5) to 1 to configure as output
PE_CR1 |= 0x20; // Set bit 5 of PE_CR1 to 1 for push-pull mode
PE_CR2 &= ~0x20; // Set bit 5 of PE_CR2 to 0 for low speed
// Main loop
while (1) {
PE_ODR ^= 0x20; // Toggle PE5 (connected to LED)
// Simple delay loop
for (i = 0; i < 100; i++) {
for (j = 0; j < 1000; j++) {
// Empty loop for delay
}
}
}
}
Аппаратные соединения
- PE5 → Светодиод → Резистор 1K → Заземление
После загрузки кода и запуска программы вы должны увидеть мигающий светодиод на PE5, подтверждающий, что настройка проекта завершена.
Управление пассивным звуковым сигнализатором с помощью STM8S105K4
В этом примере вывод PD4 микроконтроллера STM8S105K4 используется для управления пассивным звуковым сигналом. Функция звукового сигнала является альтернативной функцией PD4. Настроив бит AFR7, мы можем включить альтернативную функцию для PD4, что позволяет ему управлять звуковым сигналом.
Выполнение кода
/* Includes */
#include "user.h"
/* Function Prototypes */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre);
/* Main Function */
void main(void)
{
/* Clock, LED, and Timer Initialization */
HalCLK_Config();
HalLed_Init();
HalTimer1_Init();
// HalUART2_Init(); // Uncomment if UART is required
/* Buzzer Initialization */
HalBeep_Init(BEEP_FREQUENCY_2KHZ); // Initialize the buzzer at 2kHz
BEEP_Cmd(ENABLE); // Enable the buzzer
enableInterrupts(); // Enable interrupts
while (1)
{
// Main loop - insert additional code here if needed
}
}
/* Buzzer Initialization Function */
void HalBeep_Init(BEEP_Frequency_TypeDef beep_fre)
{
BEEP_DeInit(); // Reset the BEEP registers to their default values
BEEP_Init(beep_fre); // Initialize the BEEP with the specified frequency
}
Программирование и настройка функции звукового сигнала PD4
- Прошивка программы с помощью ST-Link и программного обеспечения STVP:
- Используйте программатор ST-Link и официальное программное обеспечение STVP для записи шестнадцатеричного файла в микроконтроллер.
- Шаги для записи и настройки в STVP:
- Шаг 1: Откройте программное обеспечение STVP, выберите опцию «PROGRAM MEMORY» (Программная память), перейдите в
File -> Openи найдите сохраненный шестнадцатеричный файл. - Шаг 2: Выберите опцию «OPTION BYTE» и измените бит AFR7, чтобы включить альтернативную функцию для PD4.
- Шаг 3: В меню программного обеспечения перейдите в
Program -> All Tabs, чтобы прошить как программные, так и опционные байты.
- Шаг 1: Откройте программное обеспечение STVP, выберите опцию «PROGRAM MEMORY» (Программная память), перейдите в





