STM32CubeMX e TrueStudio: primeiros passos com a STM32 (acender Led) parte 2



Após a instalação e as configurações iniciais efetuadas nos dois posts anteriores, chegou finalmente a hora de começar a configurar a placa stm32. Voltando à tela de configuração, "Pinout & Configuration", vamos configurar os pinos Debug.

Configurar pinos debug


É necessária a configuração dos pinos de debug sempre que for criar um novo projeto e for utilizar o gravador/debugger. Esta configuração irá permitir gravar o firmware na placa e efetuar depuração.

Na área esquerda, abra a seção "System Core" e em seguida clique em SYS. Para "Debug" selecione "Serial Wire".




Note que 2 pinos do microcontrolador ficaram verdes: PA14 e PA13. Estes são os pinos que serão usados para conectar o gravador/debugger.



Configurar o GPIO


GPIO (General Purpose Input/Output) é um conjunto de pinos responsável por fazer a comunicação de sinais digitais de entrada e saída. É com um pino GPIO, por exemplo, que podemos fazer o mais simples dos projetos: acender um Led. Nele podemos ler sensores, acionar botões etc. 

Para configurar um pino como GPIO basta clicar sobre o pino e selecionar GPIO_Output. Output porque neste projeto iremos programar para acender um Led. Utilizaremos o pino PB4 neste exemplo.



Vamos colocar um label para o pino GPIO que irá facilitar as coisas na hora da programação. Clique com o botão direito do mouse/touchpad e em "Enter User Label". Na caixinha que abrir digite o nome da label: BUILTIN_LED e dê enter.



Agora nosso pino PB4 GPIO está devidamente identificado, assim como os pinos debug.



Após essas configurações básicas, podemos salvar o projeto. Neste momento, escolhemos a IDE que iremos utilizar, que neste caso é a TrueStudio.

Vá na guia "Project Manager" e em Toolchain/IDE selecione TrueStudio. Em seguida, clique em "Generate Code" no canto superior direito.





Ao gerar o código o sistema irá exibir uma mensagem. Pode clicar em "Open Project". Se abrir num editor de texto ou simplesmente não funcionar, poderá abrir manualmente direto no TrueStudio.


Programar a placa no TrueStudio usando HAL

Abra o TrueStudio e vá em File >> Open Project From File System e escolha a pasta onde foi salvo o projeto no CubeMX. Depois clique em Finish.




Para compilar o projeto vá no ícone do martelinho: Build Debug:




Nos diretórios do projeto, abra a pasta "Src" e abra o arquivo "main.c", dando um duplo clique sobre ele.

Procure por /* Infinite loop */. É onde começa a parte de instruções do código. Aqui vamos desenvolver as instruções para acender o Led.



No Arduino, estamos acostumados com as funções DigitalWrite, PinMode, delay e etc. Aqui, vamos usar as funções do HAL - Hardware Abstraction Layer. O link da documentação do HAL você confere aqui.

Vamos utilizar duas funções o HAL: HAL_GPIO_TogglePin e HAL_Delay:

HAL_GPIO_TogglePin(BUILTIN_LED_GPIO_Port, BUILTIN_LED_Pin);
HAL_Delay(1000);

Note que utilizamos o label "BUILTIN_LED" em vez do código do pino (PB4).

Salve o projeto.

Conecte o gravador na placa SMT32 e no USB do computador:

Para gravar o firmware na placa clique no botão de Debug:



É possível que na primeira vez que você for usar o gravador/debugger o TrueStudio peça a atualização do firmware do gravador:



Clique em "OK" e siga os passos da atualização:





Feita a atualização do firmware do gravador, clique novamente no botão de Debug.

No botão Step Over você pode visualizar a execução do código e o funcionamento na placa linha a linha.



Quando terminar, clique em "Terminate". Isto encerrará o debugging e o firmware já estará gravado no placa.


Ligações na placa stm32 e o funcionamento dela

Materiais necessários:

1 stm32f1 (Blue pill)
1 resistor 330 olms
1 Led
2 jumpers


Funcionamento: