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

Conjunto de Fios Dupont

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”:

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

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:

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”:

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:

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

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

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:

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:

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

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:

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”:

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:

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:

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.

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.

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

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..:

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!

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 ; )

