Introdução a projetos baseados na placa STM32G071RB usando STM32CubeIDE

Introdução a projetos baseados na placa STM32G071RB usando STM32CubeIDE

Confira nosso Painel de controle!

Começar com um microcontrolador baseado em ARM de 32 bits é sempre um pouco assustador. Existem muitos microcontroladores, plataformas, placas de desenvolvimento, ferramentas e software disponíveis. Esta nota descreve passo a passo como iniciar um projeto de LED.

Introdução: sobre a placa de desenvolvimento STM32G071RB

Características:

  • Núcleo: CPU Cortex®-M32+ de 0 bits Arm®, frequência de até 64 MHz
  • Até 128 Kbytes de memória Flash, 36 Kbytes de SRAM
  • Controlador DMA de 7 canais com mapeamento flexível
  • ADC de 12 bits, 0.4 µs (até 16 canais externos)
  • Dois DACs de 12 bits, sample-and-hold de baixa potência
  • Dois I2C, quatro USARTs, um UART de baixa potência, dois SPIs

 

Primeiros passos: Instale STM32CubeIDE

Você pode baixar STM32CubeIDE de seu st.com. É grátis. Instale STM32CubeIDE a seguir Guia de instalação STM32CubeIDE.

 

Seu primeiro projeto: piscar LED

Antes de começarmos a escrever código, precisamos criar um projeto. Isso é semelhante à maioria dos outros IDEs - os projetos são usados ​​para agrupar todas as suas configurações, código e definições em uma única coleção, todos gerenciados a partir do mesmo aplicativo.

 

 

PASSO 1: Inicie um novo projeto, no ícone superior esquerdo (ou no menu Arquivo> Novo> Projeto STM32) para começar.

 

Etapa 2: Nome do projeto: G0_LED e clique no botão Concluir.

Do diagrama esquemático que o LED4 é controlado pelo STM32G071 e a porta é PA5.

Etapa 3: Em System Core> SYS, selecione Serial Wire, configure PA5 como GPIO_OUTPUT.

Configure o rótulo de uso para PA5 como LED_GREEN conforme abaixo:

 

Passo 4: Em seguida, gere o código.

 

CubeIDE, sobre o qual essa funcionalidade é desenvolvida, gera arquivos C para trabalhar em um diretório Src e coloca um HAL (Hardware Abstraction Layer) em um diretório Includes. Parece que o CubeIDE funciona exatamente da mesma maneira. Expanda as pastas à direita sob a visualização do projeto e veja o que ele gerou para funcionar para você.

 

 

Etapa 5: Vamos adicionar um pouco do nosso próprio código C agora! Após a área do Infinite Loop, vamos adicionar o código para alternar o LED na seção 3 conforme abaixo:

 

 

Compilando o projeto e baixando-o para o quadro

STM32CubeIDE realmente torna muito fácil compilar nosso trabalho e colocá-lo no chip STM32. O primeiro passo é produzir o .elf compilado (uma versão binária do nosso código). Para gerar o .elf, precisamos fazer um build. Isso é tão fácil quanto pressionar o botão de construção na barra de ferramentas.

Agora, as informações de compilação são apresentadas no console na parte inferior da tela.

Agora o que queremos fazer é enviar este binário compilado para o microcontrolador STM32.

Vamos conectar o kit de desenvolvimento:

O LED de energia vermelho (à esquerda do interruptor azul) está aceso, assim como o LED de comunicação maior (pelo cabo USB). Dentro do STM32CubeIDE, selecione o botão de execução.

Isso abrirá a caixa de diálogo Executar (já que é a primeira vez que a executamos). As configurações que escolhemos agora serão salvas como uma configuração de execução que podemos reutilizar ou editar mais tarde.

Basta pressionar Aplicar e, em seguida, OK e o download continuará. O console agora será preenchido com algum texto interessante:

O LED acende e apaga a cada 500 ms. você tem tudo configurado.

STM32 versus Arduino

STM32 versus Arduino

Confira nosso Painel de controle!

 

Arduino

O Arduino é mais criativo, enfraquece o funcionamento de hardware específico, suas funções e sintaxe são muito simples, e é muito “burro”.

A maior parte do controle principal do Arduino é o microcontrolador AVR. A vantagem do Arduino é que ele possui alto encapsulamento de código e menos sentenças, o que reduz a dificuldade de desenvolvimento de software.

O Arduino é relativamente fácil de começar, desde que você entenda um pouco de hardware e C++, você pode desenvolver.

A maioria das funções do Arduino possui bibliotecas bem construídas, por isso é muito simples de usar, mas a controlabilidade de funções um pouco mais complicadas é ruim. 

 

STM32

O STM32 presta mais atenção à prática de engenharia. Na verdade, existem muitos instrumentos simples na fábrica, como controladores de temperatura, controladores de motores comuns, PLCs de baixo custo e alguns brinquedos civis, controladores de jogos, teclados e mouses com fio e outros periféricos e assim por diante são muito práticos.

O STM32 é usado principalmente como produtos para desenvolvedores profissionais, o que requer certo conhecimento profissional, mas, ao mesmo tempo, é relativamente complicado escrever código para realizar funções. Por exemplo, a porta serial gera uma string simples. Para Arduino, pode começar a partir de um novo projeto e pode ser realizado com 10 linhas de código. No entanto, se você usar ferramentas de desenvolvimento STM32, como Keil, pode exigir centenas de linhas de código ou mais.

Em termos de código aberto: coisas feitas com STM32 podem ser de código aberto se você quiser código aberto, e você não pode publicar nada se não quiser código aberto.

 

Conclusão

 

Aqui estão algumas sugestões para a escolha:

Se você é um estudante comum abaixo do nível universitário que não possui uma compreensão profunda das linguagens de programação, é recomendável começar com o Arduino. Se as habilidades C forem fracas e chegarem ao STM32, você logo terá a ideia de desistir.

Se você estuda apenas para o emprego, decididamente o microcontrolador STM32.

Se você está aprendendo apenas por diversão e não é especialista em eletrônica e não tem confiança, o Arduino é recomendado.

Se você tiver boas habilidades de programação, o STM32 é recomendado. Depois de fazer isso, você pode dar uma olhada nas coisas feitas pela comunidade de código aberto do Arduino e pode fazê-lo facilmente com o STM32.

Claro, se você tiver habilidade, poderá fazer contato com ambos. Geralmente, você pode dominar os recursos básicos do Arduino em menos de uma semana. Se você precisar no futuro, poderá transplantar livremente o código do Arduino para plataformas MCU, como STM32.

Na verdade, os dois são realmente voltados para direções ligeiramente diferentes. O Arduino é a escolha dos amadores de eletrônica geral e DIY, enquanto o STM32 é frequentemente usado para o desenvolvimento e fabricação de produtos reais.