Docs

Micro-controllers, wireless transmission and database

Head

Seven Segment Display with Blue Pill using STM32CubeIDE

Prerequisites

This project assumes you have already installed STM32CubeIDE. You need to have previously done a basic blink sketch with blue-pill using STM32CubeIDE. I have made a complete video from installing STM32CubeIDE to LED blink program. You can watch it by clicking this link. https://www.youtube.com/watch?v=kXg467nVd_A

Wiring Diagram

Diagram

Image

STM32CubeIDE Settings

Set PA1, PA2, PA3, PA4, PA8, PA9 and PA10 to GPIO_Output

Additional code on top of STM32CubeIDE generated code

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 1);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 1);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 1);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 0);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 1);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_1, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_9, 1);
	  HAL_GPIO_WritePin(GPIOA, GPIO_PIN_10, 0);
	  HAL_Delay(1000);

    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */