El microcontrolador STM8S105K4, conocido por su eficiencia y versatilidad, es una opción sólida para aplicaciones embebidas en electrónica de consumo y sistemas industriales. Este artículo proporciona una descripción general de sus características clave, configuración de pines y diagrama de bloques, junto con una guía paso a paso para configurar un proyecto en IAR Embedded Workbench. Con código de ejemplo para el control básico de GPIO e instrucciones sobre programación y depuración, esta guía le ayudará a comenzar con el STM8S105K4 rápidamente y de manera efectiva.
Descripción general
El STM8S105K4 es un microcontrolador de 8 bits de STMicroelectronics, parte de la familia STM8. Está diseñado para una amplia gama de aplicaciones, proporcionando un equilibrio entre rendimiento, eficiencia energética y asequibilidad. Con sus periféricos avanzados y memoria EEPROM integrada, el STM8S105K4 es adecuado para tareas de control de propósito general en electrónica de consumo, sistemas industriales y más.
Características y especificaciones
- Core: 8-bit STM8 core con arquitectura Harvard, que opera a hasta 16 MHz.
- Memoria:
- Memoria Flash: 16 KB
- RAM: 1 KB
- EEPROM: 640 bytes
- Temporizadores:
- Temporizador de control avanzado de 16 bits (TIM1)
- Temporizador general de propósito (TIM2) de 16 bits
- Temporizador básico de 8 bits (TIM4)
- Interfaces de Comunicación:
- Interfaces UART, I2C y SPI para conectividad versátil.
- Características Analógicas:
- ADC de 10 bits con hasta 5 canales
- Referencia de voltaje interna para una mayor precisión analógica
- GPIO:
- Múltiples pines de E/S con configuraciones de pull-up programables, tipo de salida y velocidad
- Hasta 38 puertos de E/S (dependiendo del paquete)
- Voltaje de Operación: 2.95 V a 5.5 V
- Rango de Temperatura: -40°C a +85°C (grado industrial)
- Empaquetado: Disponible en LQFP32 y otras opciones de paquete compactas.
Pin Configuration
El STM8S105K4 proporciona hasta 48 pines de E/S, dependiendo del paquete, que se pueden configurar para múltiples funciones como entrada ADC, salida PWM, UART, SPI, I²C y E/S digital de propósito general. Los GPIO clave incluyen:
- Puerto A (PA0 a PA7): Configurable para E/S digital y funciones alternativas.
- Puerto B (PB0 a PB7): Principalmente utilizado para E/S con pines específicos que admiten funciones alternativas.
- Puertos C, D y E: Soporte para E/S adicionales, entrada analógica y funciones de temporizador, incluyendo la generación PWM.

Cada pin se puede configurar individualmente como entrada o salida, con soporte para modos de tracción y compresión y modo abierto. Además, los pines están protegidos contra ESD y son capaces de salidas de alta potencia para aplicaciones de accionamiento de LED y relés.
Diagrama de bloques

El diagrama de bloques del STM8S105K4 incluye:
- Núcleo: Núcleo STM8 con control de reloj, contador de programa y ALU para el procesamiento de 8 bits.
- Unidades de memoria:
- Memoria Flash para almacenamiento de código
- EEPROM para retención de datos
- SRAM para uso general
- Periféricos:
- ADC para el procesamiento de señales analógicas
- Temporizadores (TIM1, TIM2 y TIM4) para el tiempo de eventos, PWM y generación de formas de onda
- Interfaces de comunicación (UART, SPI e I²C) para la conectividad con sensores, pantallas y otros módulos
- Control del sistema:
- Unidad de generación de reloj con fuentes de reloj internas y externas
- Temporizador de watchdog para la fiabilidad del sistema
- Unidad de gestión de energía con modos de bajo consumo
- Control de E/S: Configuración y gestión de GPIO para la interfaz con dispositivos externos
Esta arquitectura modular permite una flexibilidad en el manejo de una variedad de tareas, desde el control en tiempo real hasta la comunicación serial.
Aplicaciones
El microcontrolador STM8S105K4 es ideal para una amplia gama de aplicaciones, incluyendo:
- Electrónica de Consumo: Electrodomésticos, controles remotos y control de visualización
- Control Industrial: Control de motores, sistemas HVAC y módulos PLC
- Aplicaciones Automotrices: Interfazación de sensores, control del panel de instrumentos y sistemas de iluminación
- Atención Médica: Dispositivos médicos, sistemas de monitorización y equipos de asistencia sanitaria portátiles
- Dispositivos IoT: Sensores inteligentes, módulos inalámbricos y medición de energía
Con su combinación de características analógicas, digitales y de comunicación, el STM8S105K4 permite a los diseñadores crear sistemas embebidos eficientes, versátiles y rentables en diversas industrias.
Crear un IAR Project para STM8S105K4
En este ejemplo, crearemos un proyecto IAR para encender el LED utilizando el microcontrolador STM8S105K4.
Herramientas Requeridas
Componentes de Hardware:
- Microcontrolador STM8S105K4
- Depurador y Programador ST-LINK/V2
- Placa de Desarrollo STM8S105K4 (opcional)
- LED y Resistencia (1KΩ)
- Placa de pruebas y cables puente
Herramientas de Software:
- IAR Embedded Workbench para STM8
- ST Visual Programmer (STVP)
Pasos para Crear el Proyecto
Crea Carpeta de Proyecto:
- Crea una carpeta llamada
test, y dentro de ella, crea otra carpeta llamadauser.
- Crea una carpeta llamada
Abre IAR Embedded Workbench:
- Abre IAR para STM8 (versión 9.40.2).
Crea un Nuevo Proyecto:
- Ve a
Proyecto->Crear Nuevo Proyecto. - En la ventana de diálogo, selecciona
Serie STM8->Proyecto vacío, y haz clic enAceptar. - Guarda el archivo
.ewpen la carpetatest/usery nómbralotest.
- Ve a

Añade Grupo de Proyecto:
- Dirígete al menú y haz clic en
Proyecto->Añadir Grupo. - Nombra el grupo
user, y haz clic enAceptar.
- Dirígete al menú y haz clic en

Crea un Archivo Principal:
- Ve a
Archivo->Nuevo->Archivo, luego guárdalo comomain.c. - Añade
main.cal grupouser.
- Ve a

Configurando el Entorno IAR
Opciones del Proyecto:
- Seleccione
Proyecto->Opciones.
- Seleccione
Seleccione el Dispositivo de Destino:
- En
Opciones Generales->Destino->Dispositivo, seleccioneSTM8S105K4(o su modelo de dispositivo específico).

Configure Rutas de Inclusión:
- En
Compilador C/C++->Preprocesador, agregue la ruta"$PROJ_DIR$\\..\\user". - Esta sintaxis especifica la ruta del archivo de inclusión dentro del directorio del proyecto.
- En

Configure el Depurador:
- En
Depurador->Configuración, establezca elControladoraST-LINK. - Haga clic en
Aceptarpara guardar la configuración.
- En

Añadir Código y Construir el Proyecto:
- En
main.c, introduzca el siguiente código, luego vaya aProyecto->Reconstruir Todo. - Si ve
Número total de errores: 0yNúmero total de advertencias: 0, el proyecto está configurado correctamente.
- En

Incluir Archivo de Encabezado:
- Asegúrese de que el archivo de encabezado
IOSTM8S105K4.hesté disponible en el directorio de instalación de IAR:Software (E:) > IAR para STM8 > arm > inc > ST.
- Asegúrese de que el archivo de encabezado

Escritura, Descarga y Depuración de Código
El siguiente código alterna un LED conectado al pin PE5 con un bucle de retardo para que el LED parpadee.
#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
}
}
}
}
Conexiones de Hardware
- PE5 → LED → Resistor de 1k → Tierra
Después de cargar el código y iniciar el programa, debería ver el LED en PE5 parpadeando, confirmando que la configuración del proyecto está completa.
Conducir un Zumbador Pasivo por STM8S105K4
En este ejemplo, el pin PD4 del microcontrolador STM8S105K4 se utiliza para conducir un zumbador pasivo. La función del zumbador es una función alternativa de PD4. Al configurar el bit AFR7, podemos habilitar la función alternativa para PD4, lo que le permite conducir el zumbador.
Ejecución del Código
/* 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
}
Programación y Configuración de la Función del Zumbador PD4
- Cargar el Programa usando ST-Link y STVP Software:
- Utilice el programador ST-Link y el software STVP oficial para cargar el archivo HEX en el microcontrolador.
- Pasos para la Carga y Configuración en STVP:
- Paso 1: Abra el software STVP, seleccione la opción «PROGRAMA MEMORIA», vaya a
Archivo -> Abriry ubique el archivo HEX guardado. - Paso 2: Seleccione la opción «BYTE OPCIÓN» y modifique el bit AFR7 para habilitar la función alternativa para PD4.
- Paso 3: En el menú del software, vaya a
Programa -> Todas las pestañaspara cargar tanto el programa como los bytes de opción.
- Paso 1: Abra el software STVP, seleccione la opción «PROGRAMA MEMORIA», vaya a





