Getting started with the X-CUBE-DISPLAY display module Expansion Package for STM32Cube

Introduction

This user manual provides an overview of the X-CUBE-DISPLAY Expansion Package and explains how to get started in STM32CubeMX. The package enables display and user interface features on STM32 boards, supporting various interfaces like LCD controllers, touch screens, user buttons, joysticks, and external memories.

The X-CUBE-DISPLAY Expansion Package supports the X-NUCLEO-GFX01M1 expansion board, offering necessary drivers and simple examples. Key features include:

Figure 1. X-CUBE-DISPLAY running on NUCLEO-G071RB equipped with X-NUCLEO-GFX01M1. Picture is not contractual.

General information

This user manual briefly describes the X-CUBE-DISPLAY Expansion Package, focusing on its usage and not on LCD controllers or input devices. Table 1 lists relevant acronyms.

Table 1. List of acronyms
AcronymDefinition
APIApplication programming interface
BSPBoard support package
HALHardware abstraction layer
IDEIntegrated development environment
LCDLiquid-crystal display
LEDLight-emitting diode
SPISerial peripheral interface

The X-CUBE-DISPLAY Expansion Package runs on STM32 32-bit microcontrollers based on the Arm® Cortex® processor.

Note: Arm is a registered trademark of Arm Limited (or its subsidiaries) in the US and/or elsewhere.

Package description

This section details the X-CUBE-DISPLAY Expansion Package content and its usage.

General description

The X-CUBE-DISPLAY Expansion Package provides simple and generic support software for the X-NUCLEO-GFX01M1 expansion board, running on STM32 microcontrollers. Supported integrated development environments include:

  • IAR Systems® - IAR Embedded Workbench® for Arm® (EWARM)
  • Keil® - Microcontroller Development Kit (MDK-ARM)
  • STMicroelectronics - System Workbench for STM32 (SW4STM32)

Refer to the release note in the package root folder for supported IDE versions.

Architecture

The software runs on STM32 boards, enabling display and control of graphics and texts via add-on display, memories, and controlling modules. The package includes:

  • LCD controllers
  • External memories
  • Buttons and joysticks
  • LED

Architecture concept

This section provides a high-level view of the software architecture for display modules.

Figure 2. Architecture concept

The display modules expose three main interfaces to applications:

  • Display interface: via LCD controllers or dedicated display bus.
  • External memory interface: for external memory devices to store graphical assets.
  • User interface: touch screen, joystick, and buttons.

The LCD_IO layer abstracts the actual hardware bus interface used with the LCD controller. The MEM_IO layer abstracts the actual hardware bus interface used with external memory devices. The KEY_CONF layer abstracts the actual hardware button interface used with the expansion board.

X-CUBE-DISPLAY Expansion Package content

The X-CUBE-DISPLAY Expansion Package is an expansion for STM32CubeMX with the following characteristics:

  • Complies with STM32CubeMX architecture recommendations (code generator and folders).
  • Expands STM32CubeMX to enable UIX application development.
  • Based on STM32CubeHAL, the hardware abstraction layer for STM32 microcontrollers.

Software components for exchanging data with remote applications include:

  • STM32CubeHAL: Provides a generic multi-instance set of APIs for interacting with upper layers. It is built around a generic architecture, allowing middleware layers to implement functionalities without dependencies on specific hardware configurations, improving code reusability and portability.
  • Board support package (BSP): Includes APIs for STM32 board peripherals beyond the MCU. It offers a programming interface for board-specific peripherals like LEDs and user buttons.

Configuration files:

  • lcd_conf.h: Defines GPIO and hardware interface mapping for logical names, easing software porting. It also provides hardware bus interface configuration (e.g., SPI) for LCD controller communication.
  • mem_conf.h: Defines GPIO and hardware interface mapping for logical names, easing software porting. It also provides hardware bus interface configuration (e.g., SPI) for external memory device communication.
  • key_conf.h: Defines GPIO mapping for logical names, easing software porting. It provides GPIO configurations for user controls.

Example projects: This release includes a "hello world" example for the X-NUCLEO-GFX01M1 expansion board combined with the NUCLEO-G071RB STM32 development board.

Sample application description

This section provides a brief overview of the sample applications and examples included in X-CUBE-DISPLAY.

The sample applications and examples are:

GFX01M1_HelloWorld application

This application provides a "hello world" example that configures the LCD controller and displays an image stored in the X-NUCLEO-GFX01M1 expansion board's external memory. It allows user interaction through joystick buttons.

Installing X-CUBE-DISPLAY in STM32CubeMX

After downloading from www.st.com, installing, and launching STM32CubeMX (V6.0.0 or above), the X-CUBE-DISPLAY package can be installed following these steps:

Step 1.

From the menu, select [Help] > [Manage embedded software packages].

Figure 3. Managing embedded software packages in STM32CubeMX

Step 2.

From the Embedded Software Packages Manager window, press the [Refresh] button to get the updated add-on package list. Navigate to the STMicroelectronics tab to find the X-CUBE-DISPLAY package.

Figure 4. Installing the X-CUBE-DISPLAY package in STM32CubeMX
Figure 5. The X-CUBE-DISPLAY package in STM32CubeMX

Step 3.

Check the corresponding checkbox to select X-CUBE-DISPLAY and click [Install Now]. Upon successful installation, the box turns green, and you can press [Close] to start configuring a new project.

Step 4.

Select the [Software Packs] > [Select Components] menu to add X-CUBE-DISPLAY as an Additional Software to the project.

Figure 9. STM32CubeMX Software Packs window

Step 5.

Choose to generate either one of the sample applications or a new project from the Software Packs Component Selector for the selected microcontroller or board. For a new project, implement the main application logic; STM32CubeMX will automatically generate the pinout and peripheral configuration code.

Figure 10. STM32CubeMX Software Packs Component Selector window

Step 6.

Press [OK] to return to the STM32CubeMX Pinout view. To enable and configure the selected X-CUBE-DISPLAY modules ([Extension Board GFX01M1], [Device Application], or both), select [STMicroelectronics.X-CUBE-DISPLAY.1.0.0] under Software Packs in the Categories list.

Figure 11. STMicroelectronics.X-CUBE-DISPLAY selection

Starting a new project

After launching STM32CubeMX, start a new project as described below.

Step 1.

Choose to start a new project from the MCU Selector or Board Selector.

Figure 6. STM32CubeMX main page

Step 2.

Select the desired STM32 microcontroller or platform from the pop-up MCU Selector or Board Selector window.

Figure 7. STM32CubeMX Board Selector window example

Step 3.

Select the microcontroller or board to display the pinout of the corresponding STM32 microcontroller. From this window, the user can set up the project by adding Additional Software and peripherals, and configuring the clock.

Figure 8. STM32CubeMX Pinout & Configuration window

Revision history

Table 2. Document revision history
DateVersionChanges
18-Dec-20201Initial release.

PDF preview unavailable. Download the PDF instead.

um2787-getting-started-with-the-xcubedisplay-display-module-expansion-package-for-stm32cube-stmicroelectronics Antenna House PDF Output Library 7.0.1600; modified using iText 2.1.7 by 1T3XT C2 v4.2.0220 build 670 - c2 rendition config : Techlit Active

Related Documents

PreviewX-NUCLEO-GFX02Z1: STM32 Nucleo-144 Display Expansion Board User Manual
User manual for the STMicroelectronics X-NUCLEO-GFX02Z1 expansion board, featuring a 2.2-inch TFT display and joystick for STM32 Nucleo-144 development boards. Learn about its features, compatibility, and usage.
PreviewX-NUCLEO-GFX02Z1 User Manual: STM32 Nucleo-144 Display Expansion Board
Explore the X-NUCLEO-GFX02Z1, an expansion board from STMicroelectronics that adds a 2.2-inch TFT display and GUI capabilities to STM32 Nucleo-144 development boards. Features include a joystick and Q-SPI NOR Flash memory.
PreviewX-NUCLEO-GFX02Z1 Display Expansion Board for STM32 Nucleo-144
Data brief for the STMicroelectronics X-NUCLEO-GFX02Z1, a display expansion board for STM32 Nucleo-144 boards, featuring a 2.2-inch TFT LCD, 64-Mbit Flash memory, and joystick for GUI applications.
PreviewSTM32 Nucleo-64 Boards: Development Platform Overview
Comprehensive data brief detailing the features, ordering information, and development environment for STM32 Nucleo-64 microcontroller development boards from STMicroelectronics.
PreviewSTM32 Nucleo-144 Boards User Manual | STMicroelectronics
Explore the STM32 Nucleo-144 boards with this comprehensive user manual. Learn about features, hardware layout, configuration, power supply options, and connectivity for STM32 microcontrollers. Ideal for prototyping and development.
PreviewX-NUCLEO-OUT13A1 Quick Start Guide: Industrial Digital Output Expansion Board
This guide provides essential information for setting up and using the STMicroelectronics X-NUCLEO-OUT13A1, an industrial digital output expansion board for STM32 Nucleo development boards, featuring the ISO808-1 high-side switch.
PreviewX-CUBE-SPN7 for X-NUCLEO-IHM07M1: STM32 Motor Control Software
Discover the X-CUBE-SPN7 expansion software package from STMicroelectronics for STM32Cube. This package provides essential drivers for the L6230 3-phase motor driver on the X-NUCLEO-IHM07M1 expansion board, enabling efficient motor control applications.
PreviewSTM32 Nucleo-144 Boards (MB1137) User Manual
Explore the STM32 Nucleo-144 boards (MB1137) from STMicroelectronics. This user manual details features, development environment, hardware layout, and ordering information for these versatile microcontroller development kits, ideal for prototyping and embedded system design.