O microcontrolador STM8S105K4, conhecido por sua eficiência e versatilidade, é uma escolha sólida para aplicações embarcadas em eletrônicos de consumo e sistemas industriais. Este artigo fornece uma visão geral de seus principais recursos, configuração de pinos e diagrama de blocos, juntamente com um guia passo a passo para configurar um projeto no IAR Embedded Workbench. Com código de exemplo para controle GPIO básico e instruções sobre programação e depuração, este guia ajudará você a começar a usar o STM8S105K4 de forma rápida e eficaz.
Visão geral
O STM8S105K4 é um microcontrolador de 8 bits da STMicroelectronics, parte da família STM8. Ele foi projetado para uma ampla gama de aplicações, oferecendo um equilíbrio entre desempenho, eficiência energética e preço acessível. Com seus periféricos avançados e EEPROM embutida, o STM8S105K4 é adequado para tarefas de controle de uso geral em eletrônicos de consumo, sistemas industriais e muito mais.
Características e especificações
- Núcleo: Núcleo STM8 de 8 bits com arquitetura Harvard, operando a até 16 MHz.
- Memória:
- Memória flash: 16 KB
- RAM: 1 KB
- EEPROM: 640 bytes
- Temporizadores:
- Temporizador de controle avançado de 16 bits (TIM1)
- Temporizador de uso geral de 16 bits (TIM2)
- Temporizador básico de 8 bits (TIM4)
- Interfaces de comunicação:
- Interfaces UART, I²C e SPI para conectividade versátil.
- Recursos analógicos:
- ADC de 10 bits com até 5 canais
- Referência de tensão interna para maior precisão analógica
- GPIO:
- Vários pinos de E/S com configurações programáveis de pull-up, tipo de saída e velocidade
- Até 38 portas de E/S (dependendo do pacote)
- Tensão de operação: 2,95 V a 5,5 V
- Faixa de temperatura: -40 °C a +85 °C (grau industrial)
- Embalagem: Disponível em LQFP32 e outras opções de embalagem compacta.
Configuração do pino
O STM8S105K4 oferece até 48 pinos de E/S, dependendo do pacote, que podem ser configurados para várias funções, como entrada ADC, saída PWM, UART, SPI, I²C e E/S digital de uso geral. Os principais GPIOs incluem:
- Porta A (PA0 a PA7): configurável para E/S digital e funções alternativas.
- Porta B (PB0 a PB7): Usada principalmente para E/S com pinos específicos que suportam funções alternativas.
- Portas C, D e E: Suporte para E/S adicional, entrada analógica e funções de temporizador, incluindo geração de PWM.

Cada pino pode ser configurado individualmente para entrada ou saída, com suporte para os modos push-pull e open-drain. Além disso, os pinos são protegidos contra ESD e capazes de saídas de alta potência para aplicações de acionamento de LED e relé.
Diagrama de blocos

O diagrama de blocos do STM8S105K4 inclui:
- Núcleo: núcleo STM8 com controle de clock, contador de programa e ALU para processamento de 8 bits.
- Unidades de memória:
- Memória flash para armazenamento de código
- EEPROM para retenção de dados
- SRAM para uso geral
- Periféricos:
- ADC para processamento de sinais analógicos
- Temporizadores (TIM1, TIM2 e TIM4) para temporização de eventos, PWM e geração de formas de onda
- Interfaces de comunicação (UART, SPI e I²C) para conectividade com sensores, displays e outros módulos
- Controle do sistema:
- Unidade de geração de relógio com fontes de relógio internas e externas
- Temporizador watchdog para confiabilidade do sistema
- Unidade de gerenciamento de energia com modos de baixo consumo
- Controle de E/S: Configuração e gerenciamento de GPIO para interface com dispositivos externos
Esta arquitetura modular permite flexibilidade no tratamento de uma variedade de tarefas, desde controle em tempo real até comunicação serial.
Aplicações
O microcontrolador STM8S105K4 é ideal para uma ampla gama de aplicações, incluindo:
- Eletrônicos de consumo: eletrodomésticos, controles remotos e controle de telas
- Controle industrial: controle de motores, sistemas HVAC e módulos PLC
- Aplicações automotivas: interface de sensores, controle do painel e sistemas de iluminação
- Saúde: dispositivos médicos, sistemas de monitoramento e equipamentos portáteis de saúde
- Dispositivos IoT: sensores inteligentes, módulos sem fio e medição de energia
Com sua combinação de recursos analógicos, digitais e de comunicação, o STM8S105K4 permite que os projetistas criem sistemas embarcados eficientes, versáteis e econômicos em vários setores.
Criando um projeto IAR para STM8S105K4
Neste exemplo, vamos criar um projeto IAR para acender o LED usando o microcontrolador STM8S105K4.
Ferramentas necessárias
Componentes de hardware:
- Microcontrolador STM8S105K4
- Depurador e programador ST-LINK/V2
- Placa de desenvolvimento STM8S105K4 (opcional)
- LED e resistor (1KΩ)
- Placa de ensaio e fios de ligação
Ferramentas de software:
- IAR Embedded Workbench para STM8
- ST Visual Programmer (STVP)
Passos para criar o projeto
Criar pasta do projeto:
- Crie uma pasta chamada
teste, dentro dela, crie outra pasta chamadauser.
- Crie uma pasta chamada
Abra o IAR Embedded Workbench:
- Abra o IAR para STM8 (versão 9.40.2).
Criar um novo projeto:
- Vá para
Project->Create New Project. - Na caixa de diálogo, selecione
STM8 Series->Empty projecte clique emOK. - Salve o
.ewparquivo natest/usere nomeie-otest.
- Vá para

Adicionar grupo de projetos:
- Selecione o menu e clique em
Project->Add Group. - Nomeie o grupo
usere clique emOK.
- Selecione o menu e clique em

Criar um arquivo principal:
- Vá para
File->New->Filee salve-o comomain.c. - Adicionar
main.caousergrupo.
- Vá para

Configurando o ambiente IAR
Opções do projeto:
- Selecione e clique
Project->Options.
- Selecione e clique
Definir dispositivo de destino:
- Em
General Options->Target->Device, selecioneSTM8S105K4(ou o modelo específico do seu dispositivo).
- Em

Configurar caminhos de inclusão:
- Em
C/C++ Compiler->Preprocessor, adicione o caminho"$PROJ_DIR$\..\user". - Esta sintaxe especifica o caminho do arquivo de inclusão dentro do diretório do projeto.
- Em

Configurar o depurador:
- Em
Debugger->Setup, defina oDriverparaST-LINK. - Clique em
OKpara salvar a configuração.
- Em

Adicione o código e compile o projeto:
- Em
main.c, insira o seguinte código e vá paraProject->Rebuild All. - Se você vir
Total number of errors: 0eTotal number of warnings: 0, o projeto está configurado corretamente.
- Em

Incluir arquivo de cabeçalho:
- Certifique-se de que o arquivo de cabeçalho
IOSTM8S105K4.hestá disponível no diretório de instalação do IAR:Software (E:) > IAR for STM8 > arm > inc > ST.
- Certifique-se de que o arquivo de cabeçalho

Escrever, baixar e depurar código
O código a seguir alterna um LED conectado ao pino PE5 com um loop de atraso para fazer o LED piscar.
#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
}
}
}
}
Conexões de hardware
- PE5 → LED → Resistor 1K → Terra
Após carregar o código e iniciar o programa, você deverá ver o LED no PE5 piscando, confirmando que a configuração do projeto está completa.
Acione um sinalizador passivo com STM8S105K4
Neste exemplo, o pino PD4 do microcontrolador STM8S105K4 é usado para acionar um sinalizador sonoro passivo. A função do sinalizador sonoro é uma função alternativa do PD4. Ao configurar o bit AFR7, podemos habilitar a função alternativa para o PD4, o que permite que ele acione o sinalizador sonoro.
Execução de 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
}
Programação e configuração da função do sinal sonoro PD4
- Grave o programa usando o ST-Link e o software STVP:
- Use o programador ST-Link e o software oficial STVP para gravar o arquivo hex no microcontrolador.
- Etapas para gravação e configuração no STVP:
- Etapa 1: Abra o software STVP, selecione a opção "PROGRAM MEMORY" (MEMÓRIA DO PROGRAMA), vá para
File -> Opene localize o arquivo hexadecimal salvo. - Etapa 2: Selecione a opção "OPTION BYTE" e modifique o bit AFR7 para habilitar a função alternativa para PD4.
- Etapa 3: No menu do software, vá para
Program -> All Tabspara fazer o flash dos bytes do programa e da opção.
- Etapa 1: Abra o software STVP, selecione a opção "PROGRAM MEMORY" (MEMÓRIA DO PROGRAMA), vá para





