Neste post vamos mostrar os primeiros passos com STM32, como fazer o LED do devkit NUCLEO-F446RE piscar, e também vamos fazer a leitura de um tecla que tem no próprio DEVKIT.
Para os testes vamos precisar uma placa NUCLEO-F446RE e do STM32CUBEIDE instalado.
No vídeo abaixo é mostrado como configurar os terminais do STM32.
No vídeo abaixo é mostro o funcionamento do circuito.
Códigos
Abaixo é apresentado o código para fazer o LED piscar, onde é possível determinar o valor que o LED vai permanecer ligado e desligado.
void blink(uint32_t myTime){
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
HAL_Delay(myTime);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
HAL_Delay(myTime);
}
Para leitura da tecla, vamos criar a seguinte função:
void readButton(void) {
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
}
else {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
}
}
Depois de criadas as funções podemos chamar dentro do while(1), como mostrado abaixo:
void blink(uint32_t myTime){
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
HAL_Delay(myTime);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
HAL_Delay(myTime);
}
void readButton(void) {
if (HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13) == 0) {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 1);
}
else {
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, 0);
}
}
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART2_UART_Init();
while (1)
{
blink(250);
readButton();
}
}
Conclusão
Neste post vimos os primeiros passos com o STM32, vimos dois códigos simples que podem ser utilizados como base para teste de periféricos e GPIOs dos microcontroladores.
referências: