Primeiros passos com STM32

Primeiros passos com STM32
fonte: https://www.st.com/en/evaluation-tools/nucleo-f446re.html

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:

https://www.st.com/en/evaluation-tools/nucleo-f446re.html