Skip to main content

Working with STM32

Working with STM32F103RBT6

Hardware Connection

Required Components

  • RGB-Matrix-P4-64x32 (included in this product)
  • 2 × 8PIN 2.54mm pitch cable (included in this product)
  • STM32F103RB (must be purchased separately)

Hardware Connection

tip
  • The example is developed based on the HAL library. Download the program, locate the STM32 program file directory, and open HUB75.uvprojx in the STM32\STM32F103RBT6\MDK-ARM directory to view the program.
  • Compile and download, then connect the screen to start the display (make sure to connect an external 5V 4A power supply; otherwise, the drive current will be drawn from the STM32 GPIO, which may damage the I/O pins).

3. STM32 Project Parameter Settings

Code Description

main.c

int main(void)
{
/* USER CODE BEGIN 1 */

/* USER CODE END 1 */

/* MCU Configuration--------------------------------------------------------*/

/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();

/* USER CODE BEGIN Init */

/* USER CODE END Init */

/* Configure the system clock */
SystemClock_Config();

/* USER CODE BEGIN SysInit */

/* USER CODE END SysInit */

/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART2_UART_Init();
MX_TIM1_Init();
/* USER CODE BEGIN 2 */

DWT_Init();
HUB75_Init();
HUB75_SetBrightness(255); // the parameter is 0-255, the higher the number, the brighter the screen is
HUB75_SetRefreshRate(1); // the parameter is 1-4, the higher the number, the brighter the screen is
App_DrawGuiScreen();

/* USER CODE END 2 */

/* Infinite loop */
/* USER CODE BEGIN WHILE */
UWORD page = 0U;
while (true)
{
App_WaitMsWithRefresh(1000U);
page = (UWORD)((page + 1U) % 3U);
App_DrawPage(page);
/* USER CODE END WHILE */

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

Code Analysis

  • App_DrawPage():
    • Draws different display content based on the page number.
    • Page 1 displays basic graphics such as points, lines, circles, and borders;
    • Page 2 displays the text "Hello" and "world";
    • Page 3 displays "Page3" and a number.
    • After drawing, the buffer content is loaded to the HUB75 screen.
  • HUB75_LoadRGB565Frame(gui_framebuffer, HUB75_PANEL_WIDTH, HUB75_PANEL_HEIGHT):
    • Transfers the RGB565 image data from the current frame buffer to the HUB75 display driver, preparing it for display on the LED matrix screen.
  • App_WaitMsWithRefresh():
    • Continuously calls HUB75_Display() while waiting for the specified time, ensuring the screen refreshes during the delay to avoid flicker or blanking.
  • HUB75_SetBrightness(255):
    • Sets the screen brightness to the maximum value, making the display content clearer and brighter.
  • HUB75_SetRefreshRate(1):
    • Sets the HUB75 screen refresh parameter to control display stability and refresh speed.
  • while (true):
    • Main program loop, switches pages every 1 second, causing the three interface contents to cycle in order.

Operation Result

64x32-STM32
64x32-STM32
64x32-STM32