Skip to Content

Programar STM32 Black Pill com o Arduino IDE

Programar STM32 Black Pill com o Arduino IDE

Este artigo explica como programar a placa STM32 Black Pill com o Arduino IDE.

Peças Necessárias

Vai precisar de uma placa de desenvolvimento STM32 Black Pill e de um cabo USB-C para programar a placa. Uma breadboard e alguns cabos também serão úteis para experimentar.

STM32 Black Pill

Cabo USB C

Dupont wire set

Conjunto de Fios Dupont

Half_breadboard56a

Breadboard

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

Descarregar e Instalar o STM32CubeProgrammer

O Arduino IDE não tem a funcionalidade para programar microprocessadores STM32. É necessário software adicional para isso. Especificamente, precisamos da ferramenta de linha de comando “STM32_Programmer_CLI” que faz parte do STM32CubeProgrammer software.

Para instalá-lo, vá ao STM32CubeProgrammer website e clique no botão vermelho que diz “Get Software”:

Get Software Button for STM32CubeProgrammer
Botão Get Software para STM32CubeProgrammer

O website vai rolar para uma lista com instalações do software STM32CubeProgrammer disponíveis para diferentes sistemas operativos:

List of STM32CubeProgrammer software installations
Lista de instalações do software STM32CubeProgrammer

Clique no botão vermelho “Get latest” para o seu sistema operativo ou em “Select version” para escolher uma versão específica do software STM32CubeProgrammer que deseja instalar. Em ambos os casos, aparece uma caixa de diálogo onde tem de aceitar o Acordo de Licença:

License Agreement for STM32CubeProgrammer
Acordo de Licença para STM32CubeProgrammer

Depois disso, aparece uma segunda caixa de diálogo, onde pode iniciar sessão numa conta MySt existente, criar uma nova conta MyST ou “Download as guest”:

Dialog to create a MyST account
Caixa de diálogo para criar uma conta MyST

Pode tentar clicar no pequeno link “Download as guest” no canto inferior direito da caixa de diálogo. Abre-se um novo formulário onde pode inserir os seus dados e, mais importante, um endereço de email onde receberá um link para download.

No entanto, isso não funcionou para mim. Recebi o link de download mas apareceu a mensagem de que o link já não é válido.

Em vez disso, criei uma conta MyST e consegui descarregar o software como ficheiro zip, por exemploen.stm32cubeprg-win64-v2-19-0.zip. Descompacte este ficheiro e, no Windows, encontrará um ficheiro chamadoSetupSTM32CubeProgrammer_win64.exe no seu interior. Execute este ficheiro .exe para instalar o software:

Installer for STM32CubeProgrammer
Instalador do STM32CubeProgrammer

Se a instalação foi bem-sucedida, podemos então instalar as placas STM32.

Instalar placas STM32

Para instalar o core STM32, vá a File -> Preferences e abra a caixa de diálogo Preferences

File -> Preferences Menu
Menu File -> Preferences

Na caixa de diálogo Preferences, vá ao separador Settings. Na parte inferior verá “Additional boards manager URLs:”. Clique no botão à direita (marcado a amarelo) para abrir o editor de URLs

Settings Tab in Preferences Dialog
Separador Settings na caixa de diálogo Preferences

No editor de URLs, adicione o seguinte URL à lista:

https://github.com/stm32duino/BoardManagerFiles/raw/main/package_stmicroelectronics_index.json

A imagem abaixo mostra o campo de edição do Additional Boards Manager com o URL adicionado para as placas STM32:

Additional Boards Manager URLs
URLs do Additional Boards Manager

Isto vai informar o Arduino IDE de onde descarregar os ficheiros das placas STM32. Se este editor já tiver alguns URLs, não há problema. Basta adicionar o novo URL numa nova linha.

De seguida, abra o BOARDS MANAGER, escreva “STMicroelectronics” na barra de pesquisa e instale as “STM32 MCU based boards” como mostrado abaixo:

Install STM32 MCU based boards
Instalar STM32 MCU based boards

Isto vai iniciar o download e instalação dos ficheiros core STM32, o que pode demorar um pouco:

Installing STM32 core files
A instalar ficheiros core STM32

Encontrei um erro na primeira tentativa, mas depois de pressionar “INSTALL” uma segunda vez, funcionou. Agora estamos prontos para selecionar uma placa STM32 e programá-la.

Selecionar a placa Black Pill

Abra o BOARDS MANAGER e escreva “f4” na barra de pesquisa. Deve aparecer uma placa chamada “Generic STM32 F4 Series”. Essa é a placa que quer, se tiver a Black Pill listada em Peças Necessárias. A imagem abaixo mostra a caixa de seleção da placa:

Select Generic STM32 F4 Series board
Selecionar placa Generic STM32 F4 Series

Se tiver a placa ligada ao PC via cabo USB, também deverá conseguir selecionar a Porta Serial, por exemplo COM4 como no exemplo acima. Se tiver problemas com as ligações USB, veja a secção de Problemas.

Configurar Parâmetros da Placa

Antes de programar a placa, precisamos de definir os parâmetros corretos. Vá ao menu “Tool”:

Tools Menu
Menu Tools

No final deste menu encontrará uma lista de parâmetros que deve definir com os seguintes valores:

Agora estamos finalmente prontos para programar a placa.

Programar a Black Pill

Se conectou a placa com sucesso via USB, precisa então de colocar a placa em modo de programação, pressionando e segurando primeiro o botão BOOT0 e depois pressionando e libertando o botão NRST. A imagem abaixo mostra onde estão localizados estes botões na placa Black Pill:


BOOT0 and NRST buttons on Black Pill board
Botões BOOT0 e NRST na placa Black Pill

Note que tem de fazer isto sempre que quiser transferir um novo programa para a Black Pill. Pode começar por experimentar o programa Blink habitual:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  
  delay(1000); 
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}

Se for bem-sucedido, o LED azul na placa deve piscar a cada segundo. Caso contrário, veja a próxima secção.

Problemas

Programar a placa Black Pill pode ser complicado. Existem alguns problemas comuns que vamos discutir nesta secção.

Dispositivo USB não reconhecido

O primeiro problema comum no Windows é o erro “USB device not recognized”. Liga a placa Black Pill ao computador via USB, mas quando pressiona o BOOT0 e o NRST para programar, vê a seguinte mensagem de erro:

Aparentemente, para placas mais antigas, isto pode dever-se a um problema térmico e se aquecer um pouco o microcontrolador (pressionando com o polegar), este erro pode desaparecer. Não posso confirmar que isto funcione, pois não resultou comigo.

Caso contrário, a recomendação é ligar o pino A10 ao terra (G), o que funcionou comigo. A imagem abaixo mostra a ligação que deve fazer:

Connecting A11 to G to fix flashing problem
Ligar A11 a G para resolver problema de programação

Se não quiser perder o pino A10 como GPIO para outros fins, pode usar um resistor pull-down de 10 KΩ e o pino A10 permanece utilizável, mantendo a programação funcional.

Dispositivo Alvo não encontrado

Se vir a mensagem de erro “Target Device not found” no Monitor Serial, é porque se esqueceu de pressionar os botões BOOT0 e NRST.

"Target Device not found" error in Serial Monitor
Erro “Target Device not found” no Monitor Serial

Pressione e segure “BOOT”, depois pressione e liberte “NRST”. Isto coloca a Black Pill em modo de programação. Tem de fazer isto sempre que quiser transferir um programa para a Black Pill.

STM32CubeProgrammer não encontrado

Se vir a mensagem de erro “STM32CubeProgrammer not found” no Monitor Serial ao tentar transferir um programa para a Black Pill, normalmente é porque o programa “STM32_Programmer_CLI.exe” não está no caminho do sistema.

"STM32CubeProgrammer not found" error in Serial Monitor
Erro “STM32CubeProgrammer not found” no Monitor Serial

No Windows, vá a Settings, pesquise por “env” e clique em “Edit the system environment variable” como mostrado abaixo:

Settings for System Environment Variables
Configurações para Variáveis de Ambiente do Sistema

Isto abre uma caixa de diálogo onde pode encontrar as variáveis de ambiente. Precisa de adicionar o caminho para o programa STM32_Programmer_CLI.exe à variável Path. Selecione-a e clique em Edit..:

Dialog to edit Environment variables
Caixa de diálogo para editar variáveis de ambiente

Depois pressione “New” para adicionar o caminho para o programa “STM32_Programmer_CLI.exe” à lista. No meu caso é “C:\Maet\Software\STM32CubeProgrammer\Bin”, como mostrado abaixo. Mas o seu será diferente!

Adding path to STM32_Programmer_CLI.exe program to system path
Adicionar caminho do programa STM32_Programmer_CLI.exe ao caminho do sistema

Pode ser necessário reiniciar o computador para que esta atualização do caminho do sistema fique ativa. Depois disso, o erro não deverá ocorrer mais.

Conclusões

Neste artigo aprendeu como programar a placa STM32 Black Pill com o Arduino IDE.

Se quiser saber como instalar placas para outros microcontroladores comuns no Arduino IDE, dê uma vista de olhos nosProgramming the Pico W5 with Arduino IDE, nosHow to Set Up a Raspberry Pi e nosA Beginner’s Guide To ESP32 Programmingtutoriais.

Se tiver alguma dúvida, sinta-se à vontade para deixar nos comentários.

Boas experiências ; )