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:
- Software building block for adding display modules.
- A simple "hello world" example available on the QVGA X-NUCLEO-GFX01M1 STM32 Nucleo expansion board connected to the NUCLEO-G071RB STM32 Nucleo development board.
- Easy portability across STM32 microcontrollers using STM32CubeMX within the STM32Cube ecosystem.
- Free and user-friendly license terms.
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.
Acronym | Definition |
---|---|
API | Application programming interface |
BSP | Board support package |
HAL | Hardware abstraction layer |
IDE | Integrated development environment |
LCD | Liquid-crystal display |
LED | Light-emitting diode |
SPI | Serial 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. 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: Refer to the release note in the package root folder for supported IDE versions. 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: This section provides a high-level view of the software architecture for display modules. The display modules expose three main interfaces to applications: 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. The X-CUBE-DISPLAY Expansion Package is an expansion for STM32CubeMX with the following characteristics: Software components for exchanging data with remote applications include: Configuration files: Example projects: This release includes a "hello world" example for the X-NUCLEO-GFX01M1 expansion board combined with the NUCLEO-G071RB STM32 development board.General description
Architecture
Architecture concept
X-CUBE-DISPLAY Expansion Package content
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.
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:
- Ready-to-use projects generated with STM32CubeMX for any STM32 Nucleo board used with the X-NUCLEO-GFX01M1 expansion board.
- Designed to show users how to use APIs to correctly initialize and utilize X-NUCLEO-GFX01M1 peripherals.
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].
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.
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.
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.
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.
Starting a new project
After launching STM32CubeMX, start a new project as described below. Choose to start a new project from the MCU Selector or Board Selector. Select the desired STM32 microcontroller or platform from the pop-up MCU Selector or Board Selector window. 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.Step 1.
Step 2.
Step 3.
Revision history
Date | Version | Changes |
---|---|---|
18-Dec-2020 | 1 | Initial release. |