A família de microcontroladores STM32 da STMicroelectronics é projetada para aplicações real-time, baixo consumo de energia, processamento digital de sinais e conectividade. São Microcontroladores de 32-bit e arquitetura ARM® Cortex®-M. Em comparação com a placa Arduino, o STM32 é mais potente embora a curva de aprendizado seja bem maior. Mas como o Arduino e sua IDE são muito disseminados, já existe um suporte para programação de STM32 através da IDE Arduino. Veja na leitura deste post como utilizar STM32 com IDE Arduino.
Comparação Atmega328p e STM32F103C8T6
Veja abaixo uma pequena tabela comparativa entre algumas características e recursos do STM32 e Atmega328:
Para ir mais a fundo nessa comparação deixo alguns links de datasheet e artigos que podem ajudar:
Datasheet STM32
Datasheet ATmega328
Artigo comparativo Digikey
Já o nível de facilidade para se começar a trabalhar com as duas plataformas é bem diferente. O Arduino já muito disseminado e possui diversos tutoriais na internet. Embora o STM32 seja mais complexo também é possível ter os primeiros passos facilitados através da IDE Arduino.
Configurando a IDE Arduino para STM32
O desenvolvedor Roger Clark desenvolveu uma extensão para IDE Arduino que dá suporte a algumas placas genéricas com STM32, inclusive a Blue Pill, que é vendida na MakerHero. Entre no repositório da extensão e baixe ou clone em seu computador.
https://github.com/rogerclarkmelbourne/Arduino_STM32
A pasta Arduino_STM32 deverá estar na pasta Arduino->hardware do seu sistema operacional. No caso do meu sistema Linux copiei a pasta para /home/giobauermeister/Arduino/hardware.
Assim, quando a IDE iniciar, irão aparecer as plataformas de STM32 disponíveis na IDE Arduino.
Conectando a placa com gravador para STM32
O gravador compatível com a placa STM32 serve tanto para carregar firmware como para debugar código. A parte de debug iremos ver em futuros tutoriais.
Conecte o gravador na interface SWD(Serial Wire debugging) da placa STM32 como mostrado na ilustração abaixo:
Verifique corretamente os nomes dos pinos impressos tanto no gravador como na placa. Caso a ordem esteja diferente da figura acima, conecte de acordo.
Não é necessário conectar o cabo micro-USB pois o gravador já alimenta a placa adequadamente para gravação.
Após feita a conexão acima conecte o gravador na porta USB do computador.
Selecionando a placa STM32 com IDE Arduino
Abra a IDE Arduino e vá no menu Ferramentas -> Placa -> Generic STM32F103C e no menu Ferramentas -> Upload method -> STLink.
Abra o exemplo Blink LED padrão do Arduino e faça apenas uma modificação colocando “PC13” no lugar de “LED_BUILTIN”, assim iremos piscar o LED 13 embutido na placa STM32.
Se tudo der certo o LED 13 irá piscar como abaixo:
Este tutorial foi apenas uma introdução básica com os primeiros passos utilizando a placa Blue Pill STM32 com IDE Arduino. Recomendamos também que você baixe o livro Descobrindo o Microcontrolador STM32, que contém várias outras informações sobre o STM32, exemplos de uso, dicas e muito mais!
Nos próximos tutoriais iremos explorar mais sobre STM32. Iremos gravar um bootloader que possibilita carregar programas através do micro USB e também utilizaremos algumas ferramentas do fabricante STMicroelectronics. Fique ligado!
Faltou explicar porque não aparece no meu Arduino 1.8.5 o STM 32 em ferramentas…fiz igual ao tutorial mas não aparece nada d
Bismarck,
Tente trocar de versão da IDE.
Abraços!
Diogo – Equipe MakerHero
Boa noite, tem como gravar bootloader no stm 32 através do arduino uno? se tiver, poderia passar uma orientação? eu não tenho o St-Link, Obrigado.
Na IDE Arduino tem como colocar o STM32 num clock baixo, exemplo 1 MHz ?
Quando vou gravar, Tem dois jampers:
Boot 0
Boot 1
Qual devo selecionar no momento do bootloader?
Desde já agradeço!!!
Ola, muito bom essa explicação, quero gravar via USB, tem como ?
Não sei nem se pode posta link de outros sites aqui mais alguém por gentileza poderia me dizer como modifica esse código para usa em um STM32 em vez de um UNO como e a compilação original ?
https://simple-circuit.com/arduino-ssd1306-oled-ds3231-rtc/
OBS: Quero mudar apenas o UNO colocando um STM32 o resto permanese o mesmo como display e RTC
João,
Você precisa fazer algumas coisas:
1. Procurar as bibliotecas utilizadas para que possa ser utilizada no STM32;
2. Verificar a nomenclatura dos pinos para que fique como as do STM32.
Abraços!
Diogo – Equipe MakerHero
não esta encontrando o arquivo exec: “/bin/arm-none-eabi-g++”
diz que não existe
este arquivo esta em arquivo de programa x86
gnu tools Arm Embedded
9-2019-q4-major
bin
arm -none-eabi-g++
Este relatório teria mais informações com
“Mostrar a saida detalhada durante a compilação”
opção pode ser ativada em “Arquivo -> Preferências”
Benedito,
Esse é o erro inteiro?
Abraços!
Diogo – Equipe MakerHero
Boa noite, eu comecei a estudar uma placa da STM, mas não é essa, é a STM32f407VET6, mas eu não achei muito material sobre ela, e quando eu conecto ela na USB aparece :
Falha em uma solicitação de descritor de dispositivo USB. Eu já instalei os drivers pelo site da STM, você sabe o que pode ser?
Bruno,
Experimente esse link: https://github.com/mcauser/MCUDEV_DEVEBOX_F407VET6
Abraços!
Diogo – Equipe MakerHero
Olá! Caro Giovanni! Poderia me ajudar, estou procurando um microcontrolador pode ser da familia STM ou outo que consiga fazer calculo complexo: como deriva, integral, aplicação de filtro Kalman, filtro complementar?
Grato
ft
Não consigo usar os pinos PA15, PB3, PB4, PB5
Julio,
Preciso que você detalhe mais o que está acontecendo com sua STM32. O que ocorre para você não conseguir usar?
Abraços!
Diogo – Equipe MakerHero
coloca isso no código do arduino que vai funcionar
afio_cfg_debug_ports(AFIO_DEBUG_SW_ONLY);
Que belezinha….
Onde?
No setup()
No loop()
Depois dos “//”s???
“Esta cada vez mais dificí”…
Adicione dentro do setup()
Abraços!
Diogo – Equipe MakerHero
Como você conseguiu, no IDE Arduino, chegar em Ferramentas -> Placa -> Generic STM32F103C. O IDE que eu tenho 1,8,8 não tem este item.
Olá Nei!
Essa parte eu expliquei na seção “Configurando a IDE Arduino para STM32” do tutorial.
Tente seguir os passos e veja se funciona para você.
Sou diretor da empresa federal sistemas Gostaria de
Uma consultoria em um projeto que estamos usando o stm32
Olá Walisson! Envie um e-mail para [email protected] que podemos conversar e avaliar uma possibilidade de consultoria.
Giovanni
Fiz todo o passo a passo mas por algum motivo está dando o Erro “No Stlink detected”.
Olá, Mateus
Verifique se está tudo conectado certinho e com todas as placas instaladas.
Abraços!
Diogo – Equipe MakerHero
Na IDE Arduino tem como colocar o STM32 num clock baixo, exemplo 1 MHz ?