Um1853 User Manual: Stm32Cubef1 Nucleo Demonstration Firmware
Um1853 User Manual: Stm32Cubef1 Nucleo Demonstration Firmware
User manual
STM32CubeF1 Nucleo demonstration firmware
Introduction
STMCube™ initiative was originated by STMicroelectronics to ease developers’ life by
reducing development efforts, time and cost. STM32Cube covers STM32 portfolio.
STM32Cube Version 1.x includes:
• The STM32CubeMX, a graphical software configuration tool that allows to generate C
initialization code using graphical wizards.
• A comprehensive embedded software platform, delivered per series (such as
STM32CubeF1 for STM32F1 series)
– The STM32CubeF1 HAL, an STM32 abstraction layer embedded software, ensuring
maximized portability across STM32 portfolio
– A consistent set of middleware components such as RTOS, USB, TCP/IP, FatFS and
Graphics
– All embedded software utilities coming with a full set of examples.
The STM32CubeF1 Nucleo Demonstration platform is built around the STM32Cube HAL,
BSP and FatFs middleware component and uses almost the whole STM32 capability to load
and display full color bitmaps from a microSD card.
Contents
5 FAQs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6 Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
List of tables
List of figures
7RXFK )$7ILOH
7&3,3 86% *UDSKLFV 5726 &06,6
/LEUDU\ V\VWHP
0LGGOHZDUHOHYHO 8WLOLWLHV
06Y9
Note: This shield is just an example of Arduino shield usage; more details are available on
Adafruit website.
The demonstration sources are located in the projects folder of the STM32Cube package for
the STM32F103RB Nucleo boards.The sources are divided into five groups described as
follows:
1. Binary: demonstration binary file in Hex format
2. Inc: contains the demonstration header files
3. Src: contains the demonstration source files
4. Project settings: a folder per toolchain containing the project settings and the linker
files.
3.2.1 Joystick
The 5-way joystick on the shield is based on a resistor trick to permit all the switches to
share one analog pin. Each movement of the joystick control connects a different resistor
and results in a different voltage reading.
The ADC peripheral is configured within the stm32f1xx_nucleo.c/.h driver in order to get
analog voltage values through the analog I/O pin 3.
The BSP_JOY_GetState() function reads the analog pin and compares the result with 5
different ranges to determine in which direction (if any) the stick has been moved (left, right,
up, down, select).
3.2.2 LCD
The LCD available on the Adafruit 1.8" TFT shield uses 4-wire SPI to communicate with the
STM32F1 chip (Digital I/O pins 13, 11, 10 and 8) and has its own pixel-addressable frame
buffer to display text, shapes, lines, pixels, etc.
The SPI peripheral is configured within the stm32f1xx_nucleo.c/.h driver which contains
also the SPI bus link mechanism and IO operations.
The LCD is controlled by a dedicated BSP LCD driver stm32_adafruit_lcd.c/.h which uses
the st7735 component that exports in a generic way the LCD IO operations needed for its
process.
3.2.3 MicroSD
The microSD slot available on the Adafruit 1.8" TFT shield uses 4-wire SPI to communicate
with the STM32F1 chip (Digital I/O pins 13, 12, 11 and 4).
The SPI peripheral is configured within the stm32f1xx_nucleo.c/.h driver which contains
also the SPI bus link mechanism and IO operations.
The microSD is controlled by a dedicated BSP SD driver stm32_adafruit_sd.c/.h which
exports in a generic way the SD IO operations needed for its process.
In this demonstration application, we will show how to use the STM32CubeF1 firmware
package with the NUCLEO-F103RB board and the Adafruit 1.8” TFT shield to display a
128x160 pixel full color bitmap from a microSD card using the FatFS file system.
To start with this demonstration application, user has to copy the provided 128x160 pixel
bitmap pictures, available within the FW package under “\Media” folder, to the root directory
of a FAT formatted microSD card and insert the microSD card into the Adafruit shield
microSD holder.
Note that the microSD card can have a storage capacity up to 4GBytes (SDSC) and that the
bitmap images must have the properties detailed in Table 1: Bitmap image properties.
Once started, the application checks the availability of Adafruit 1.8" TFT shield on top of
STM32 Nucleo board. This is done by reading the state of IO PB.00 pin (mapped to Joystick
available on the shield). If the state of PB.00 is high then the shield is available.
If the Adafruit 1.8" TFT shield is not available, the LED2 is toggling with a frequency equal to
~1Hz. A second press on the User button lets LED2 toggling with a second frequency equal
to ~5Hz. The third press, changes LED2 toggling frequency to ~10Hz. The described
process is done in an infinite loop.
If the Adafruit 1.8" TFT shield is available, LED2 is turned ON, because it's sharing the
same pin with the SPI CLK signal used to communicate with the LCD and microSD
available on the shield.
A menu is displayed on Adafruit 1.8" TFT describing the demonstration application, as
shown in Figure 7: Demonstration application menu.
Note that the application manages some errors (refer to Figure 9: Demonstration application
error messages), that can occur during the access to microSD card to load the bitmap
images:
• If the microSD card is not FAT formatted, a message will be displayed on TFT. In this
case, format the microSD card and put into its root directory the bmp files available
within the FW package under \Media folder.
• If the content of the microSD card is other than a bitmap file, a message will be
displayed on TFT mentioning that it is not supported. User has to ensure that the files,
available under the microSD card root directory, are respecting the above described
bitmap properties.
5 FAQs
6 Revision history
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and
improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order
acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or
the design of Purchasers’ products.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.