STM32 (Blue Pill) Como se Utilizar

Já ouviu falar do STM32? Muitas pessoas conhecem a placa Arduíno UNO, pois ela é a mais famosa dentro do universo maker. Entretanto existem diversos microcontroladores mais rápidos que o Arduíno UNO no mercado entre eles está o STM32 sendo até 4x mais rápido que o Arduíno.

Obs.: Contudo cada placa e/ou microcontrolador possui vantagens e desvantagens comparadas a outras. Por exemplo o Arduíno UNO é a melhor placa para se começar a estudar, pois é muito intuitiva.

STM32C8T6

Iremos Falar Sobre as placas STM32:


Informações Sobre STM32


Informações gerais do STM32F103*

Antes de mais nada os STM32 possuem 40 pinos, sendo 33 multifuncional. Contudo possuem as seguintes funções ADC de 12 bits, canais PWM, I2C, USART e SPI. Além disso seu nível logico trabalho está em 3.3V ou 5V sendo que alguns de seus pinos tem tolerância a 5V como podemos observar na figura abaixo.

Pinout STM32

Entretanto as portas USB dos STM na sua grande maioria são somente para entrada de energia. Contudo a maioria permite a instalação de um bootloader assim permitindo o carregamento partir da USB. Ainda assim para se realizar o upload do bootloader ou de nossos programas necessitamos de um ST-Link.

Gravador STM32

Então para conectar o ST-LINK v2 no STM32, basta conectar o pinos 2, 4, 6 e 8 do ST-LINK v2 e conectar nas suas respectivas entradas no STM32.

Em seguida iremos fazer um comparativo com três placas diferentes o STM32F103C6T6, STM32F103C8T6 e Arduíno UNO.

Placas:STM32F103C6T6STM32F103C8T6Arduíno UNO R3
Microcontrolador:STM32F103C6T6STM32F103C8T60ATmega328
Arquitetura:32 Bits32 Bits8 Bits
Memória flash:32 Kb64 Kb32 Kb
SRAM:10 Kb20 Kb2 Kb
EEPROM:Não PossuiNão Possui1 Kb
Frequência máxima:72 MHz72 MHz16 MHz
Resolução ADC:12 Bits12 Bits10 Bits
Temperatura Operacional:-40 °C à +85 °C-40 °C à +85 °C-40 °C à +85 °C
Interface:CAN, I2C, SPI, USART e USBCAN, I2C, SPI, USART e USBSPI, I2C, UART
Número de canais ADC:10106
Número de Temporizadores/contadores:2 Timers3 Timers3 Timers
Tensão de Operação:3,3 V3,3 V5 V
Pinos Multifuncional:323214
Consumo de Corrente:50 mA50 mA50 mA
Conexão USB:Somente AlimentaçãoSomente AlimentaçãoSim
Dimensões:53 mm x 22,5 mm53 mm x 22,5 mm68,58 mm x 53,34 mm

Informações especifica do STM32F103C8T6

Contudo o STM32F103C8T6 é um microcontrolador que possui 1 núcleo ARM Cortex M3, operando até 72Mhz, 20 KB de memória SRAM e 64 KB de RAM.

Informações especifica do STM32F103C6T6

Contudo o STM32F103C6T6 é um microcontrolador que possui 1 núcleo ARM Cortex M3, operando até 72Mhz, 10 KB de memória SRAM e 32 KB de RAM.

Programando o STM32


Antes de tudo somente é possível estar programando através da linguagem C, porém existem diversas IDEs que suportam o STM32. Por exemplo VS Code, Platform IO, Eclipse, TrueStudio, STM32CubeProgrammer e até mesmo a Arduíno IDE.

Contudo agora iremos demonstrar como programar pelo Arduíno IDE. Entretanto para começar a programar o STM32 temos que adicionar a placa no gerenciador para isso iremos em ArquivoPreferências. Em seguida irá aparecer a seguinte janela.

Janela Preferências do Arduíno IDE

Logo após isso clicamos em URLs Adicionais para Gerenciadores de Placas para adicionarmos a URL da placa STM32.

Janela URLs Adicionais do Arduíno IDE

Então adicionamos a seguinte URL: http://dan.drown.org/stm32duino/package_STM32duino_index.json

Em seguida fechamos as janelas voltamos para a tela principal do Arduíno IDE. Logo após iremos em FerramentasPlacaGerenciador de Placas, pesquise STM32f1, após isso instale a placa.

Janela Gerenciador de Placas

Logo após isso vá em FerramentasPlacaSTM32F1 Boards e escolha a placa que você está utilizando. Por fim vá em Ferramentas –> Upload methodSTLink para que assim possamos carregar o código com o ST-Link.

Escolhendo Placas

Então carregue um código simples no seu STM32 estar testando.

//Setup ----------------------------------------------------------------------------------------------
void setup(){
    pinMode(PC13, OUTPUT);
}

//Loop -----------------------------------------------------------------------------------------------
void loop(){
    digitalWrite(PC13, HIGH);
    delay(1000);
    digitalWrite(PC13, LOW);
    delay(1000);
}

Agradecemos sua Presença


Por fim, espero que tenham gostado e aprendido. Então compartilhe com seus colegas e deixe um comentário de qual projeto deveria ser o próximo aqui no Blog da WJ Componentes!!
Enfim estarei deixando o arquivo do Arduíno, link dos posts anteriores referentes ao projeto, software e sites utilizados e os datasheets dos STM32.
Fique à vontade para tirar suas dúvidas nos comentários.

Datasheet dos STM32

Software e Sites Utilizados

Post Relacionados

Posts mais Recentes

Julio Cesar Bonow Manoel

Julio Cesar Bonow Manoel

Cursando Engenharia da Computação pelo Centro Universitário Facens e atua no desenvolvimento de projetos na WJ Componentes. Participante da equipe de robótica Omegabotz.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *