Nucleo Boards Programming with the STM32CubeIDE
Hands-on in more than 50 projects
Dogan Ibrahim
Diese Publikation zitieren
Dogan Ibrahim, Nucleo Boards Programming with the STM32CubeIDE (29.04.2024), Elektor, Aachen, ISBN: 9783895764165
1335
Accesses
Accesses
30
Quotes
Quotes
Beschreibung / Abstract
Inhaltsverzeichnis
- BEGINN
- Content
- PREFACE
- CHAPTER 1 †¢ STM32 Nucleo Development Boards
- 1.1 Overview
- 1.2 STM32 Nucleo development boards
- 1.2.1 STM32 processor family numbering
- 1.2.2 Nucleo-32 development boards
- 1.2.3 Nucleo-64 development boards
- 1.2.4 Nucleo-144 development boards
- 1.3 The Nucleo-L476RG development board
- 1.3.1 Two-part board
- 1.3.2 The power supply
- 1.3.3 The LEDs
- 1.3.4 Pushbutton switches
- 1.3.5 Jumper JP6
- 1.3.6 The ST-LINK/V2-1
- 1.3.7 Input-Output connectors
- 1.3.8 The demo software
- 1.4 Summary
- CHAPTER 2 †¢ STM32 Nucleo Processor Architecture
- 2.1 Overview
- 2.2 Arm processors
- 2.2.1 Cortex-M
- 2.2.2 Cortex-R
- 2.2.3 Cortex-A
- 2.2.4 Cortex-M processor comparison
- 2.2.5 Processor performance measurement
- 2.2.6 Cortex-M compatibility
- 2.2.7 Choice of an STM32 processor
- 2.3 The STM32L476RGT6 microcontroller
- 2.3.1 Basic features of the STM32L476RGT6
- 2.3.2 Internal block diagram
- 2.3.3 General purpose inputs and outputs (GPIOs)
- 2.3.4 Electrical characteristics
- 2.3.5 The power supply
- 2.3.6 Low power modes
- 2.3.7 The clock circuit
- 2.3.8 Analogue to digital converter (ADC)
- 2.3.9 Digital to analogue converter (DAC)
- 2.3.10 Timers
- 2.3.11 Interrupts
- 2.4 Summary
- CHAPTER 3 †¢ STM32 Nucleo Software Development Tools (Toolchains)
- 3.1 Overview
- 3.2 Integrated development environments supporting the Nucleo boards
- 3.3 Embedded Workbench for Arm (EWARM)
- 3.3.1 Installing the EWARM
- 3.4 Arm Mbed
- 3.5 MDK-ARM
- 3.6 TrueSTUDIO
- 3.7 System Workbench for STM32 (SW4STM32)
- 3.8 STM32CubeIDE
- 3.9 Summary
- CHAPTER 4 †¢ Example Project †” Using the Mbed
- 4.1 Overview
- 4.2 Using the ARM Mbed
- 4.3 Summary
- CHAPTER 5 †¢ STM32CubeIDE Nucleo-L476 Projects
- 5.1 Overview
- 5.1.1 STM32cubeIDE GPIO library
- 5.2 Project 1: Lighthouse flashing LED
- 5.3 Project 2: Alternately Flashing LEDs
- 5.4 Project 3: †˜Moving†™ LEDs
- 5.5 Project 4: Binary Up Counter with LEDs
- 5.6 Project 5: Random Flashing LEDs
- 5.7 Project 6: Pushbutton and LED
- 5.8 Project 7: Control of Multiple LEDs by 2 Buttons
- 5.9 Project 8: LED Dice
- 5.10 Project 9: 7-Segment LED Counter
- 5.11 Project 10: Two-Digit Multiplexed 7-Segment LED
- 5.12 Project 11: External interrupt to control an LED
- 5.13 Project 12: Two-digit Interrupt-Driven 7-Segment Event Counter
- 5.14 Project 13: Four-Digit 7-Segment LED Display
- 5.15 Project 14: Interrupt-Based Up/Down Counter with Four-Digit 7-Segment LED Display
- 5.16 Project 15: Multiple External Interrupts Sharing the Same Interrupt Line
- 5.17 Summary
- CHAPTER 6 †¢ Timers
- 6.1 Overview
- 6.2 STM32 timers
- 6.3 Setting a timer
- 6.4 Project 1: Timer Interrupt to Flash LED Every Second
- 6.5 Project 2: 4-Digit 7-Segment LED Up Counter with Timer Interrupts
- 6.6 Summary
- CHAPTER 7 †¢ LCD Displays
- 7.1 Overview
- 7.2 Project 1: Using parallel LCDs – Displaying Text
- 7.3 Project 2: Using LCDs – Simple Up Counter
- 7.4 Summary
- CHAPTER 8 †¢ Using the Analogue to Digital Converters
- 8.1 Overview
- 8.2 The STM32 ADC conversion modes
- 8.3 Project 1: Analogue Voltmeter (polling ADC)
- 8.4 Project 2: ADC with Multiple Inputs (polling ADC)
- 8.5 Project 3: Single-input ADC with Conversion Interrupt
- 8.6 Project 4: Analogue Temperature Sensor
- 8.7 Project 5: ON-OFF Temperature Controller
- 8.8 Project 6: Multiple-input ADC with DMA
- 8.9 Timer-driven ADC
- 8.10 External-driven ADC
- 8.11 ADC calibration
- 8.12 Summary
- CHAPTER 9 †¢ Using the Digital-to-Analogue Converters
- 9.1 Overview
- 9.2 Project 1: Sawtooth Waveform Generator with Manual DAC Driving
- 9.3 Project 2: Squarewave Generator with Manual DAC Driving
- 9.4 Project 3: Sinewave Generator with Manual DAC Driving
- 9.5 Project 4: Arbitrary Waveform Generator with Manual DAC Driving
- 9.6 Project 5: Arbitrary Waveform Generator with timer-based DMA
- 9.7 Hardware waveform generation
- 9.8 Project 6: Hardware-based Triangular Waveform Generation
- 9.9 Noise signal generation
- 9.10 Summary
- CHAPTER 10 †¢ Pulsewidth Modulation (PWM)
- 10.1 Overview
- 10.2 Basic theory of pulsewidth modulation
- 10.3 Operation of the PWM
- 10.4 Project 1: Mosquito Repeller
- 10.5 Project 2: Continuously Variable Duty Cycle
- 10.6 Project 3: Multiple PWM Waveforms
- 10.7 Project 4: Potentiometer-controlled Duty Cycle Control of PWM Waveform.
- 10.8 Summary
- CHAPTER 11 †¢ Serial Communication
- 11.1 Overview
- 11.2 UART ports of the Nucleo-L476RG development board
- 11.3 Serial communication program on a PC
- 11.4 Project 1: Displaying Text on the PC
- 11.5 Project 2: Simple Up Counter
- 11.6 Project 3: Times Table
- 11.7 Project 4: Practising Elementary Multiplication
- 11.8 Project 5: Displaying Ambient Temperature on the PC Screen
- 11.9 Project 6: Communicating with Arduino (Displaying Temperature)
- 11.10 UART in interrupt mode
- 11.11 Project 7: Communicating with Arduino – UART Interrupt Mode
- 11.12 Using UART in DMA mode
- 11.13 Summary
- CHAPTER 12 †¢ The I2C Bus Interface
- 12.1 Overview
- 12.2 The I2C Bus
- 12.3 STM32L476RG I2C ports
- 12.4 Project 1: Port Expander
- 12.5 Project 2: EEPROM memory
- 12.6 Project 3: TMP102 Temperature Sensor Chip Reading
- 12.7 Summary
- CHAPTER 13 †¢ SPI Bus Projects
- 13.1 Overview
- 13.2 Nucleo-L476RG SPI pins
- 13.3 Project 1: Port Expander
- 13.4 Summary
- CHAPTER 14 †¢ Program Debugging
- 14.1 Overview
- 14.2 Project 1: Simple Debug
- 14.3 Project 2: Debugging the GPIO
- 14.4 Project 3: Displaying Characters in Debug Window
- 14.5 Project 4: Using †˜printf†™ to Display Data in Debug Window
- 14.6 Project 5: Using the ST-Link Virtual COM Port
- 14.7 Summary
- CHAPTER 15 †¢ STM32L4 MCU Power Management
- 15.1 Overview
- 15.2 Low power modes
- 15.3 Power modes transitions
- 15.4 Low power peripherals
- 15.5 Debugging in low-power modes
- 15.6 Measuring Nucleo current consumption
- 15.7 Project 1: Sleep Mode Example
- 15.8 Project 2: Stop Mode Example
- 15.9 Project 3: Standby Mode Example
- 15.10 Summary
- CHAPTER 16 †¢ Using the Expansion Boards
- 16.1 Overview
- 16.2 Industrial Digital Output Expansion Board (X-NUCLEO-OUT01A1)
- 16.3 Project 1: Flashing an LED
- 16.4 Brushed DC Motor Driver Expansion Board (X-NUCLEO-IHM13A1)
- 16.5 Motion MEMS and Environmental Sensor Expansion Board (X-NUCLEO-IKS01A2)
- 16.6 Project 2: Reading the Temperature from the X-NUCLEO-IKS01A2 Expansion Board
- 16.7 Project 3: Using the X-CUBE-MEMS1 Library
- 16.8 Wi-Fi Expansion Board (X-NUCLEO-IDW01M1)
- APPENDIX †¢ FreeRTOS For the STM32 MCU
- A.1 Overview
- A.2 Multitasking kernel advantages
- A.3 The need for an RTOS
- A.4 The FreeRTOS
- A.5 FreeRTOS project with the STM32MCubeIDE
- Index