Advanced Programming with STM32 Microcontrollers
By Majid Pakdel
An Elektor Publication
Table of Contents
- Preamble
- Chapter 1: Introduction to STM32 ARM Cortex-M Microcontrollers
- 1.1 Introduction
- 1.2 Software Tools
- 1.3 STM32 Hardware Design and Serial Programmer
- 1.4 Proposed STM32F103RET6 Header Board
- 1.5 Summary
- Chapter 2: Beginning First Projects with STM32 Microcontroller
- 2.1 Introduction
- 2.2 Beginning the First Project
- 2.3 The Second Project
- 2.4 The Third Project
- 2.5 The Fourth Project
- 2.6 Summary
- Chapter 3: Adding LCD and Delay Libraries to a Project
- 3.1 Introduction
- 3.2 STM32CubeMX Settings and Adding LCD Library to the Project
- 3.3 Adding LCD and Delay Libraries from Book files Download Section
- 3.4 Summary
- Chapter 4: External Interrupts in STM32 Microcontrollers
- 4.1 Introduction
- 4.2 External Interrupt Project Settings
- 4.3 Summary
- Chapter 5: Analogue to Digital Converters (ADCs) in STM32 Microcontrollers
- 5.1 Introduction
- 5.2 STM32CubeMX settings for ADC Project
- 5.3 Adding Codes and Libraries to the ADC Project
- 5.4 Summary
- Chapter 6: Digital to Analogue Converters (DACs) in STM32 Microcontrollers
- 6.1 Introduction
- 6.2 STM32CubeMX settings for DAC Project
- 6.3 Adding Codes to main.c
- 6.4 Summary
- Chapter 7: Timers and Counters in STM32 Microcontrollers
- 7.1 Introduction
- 7.2 Timer Project Settings
- 7.3 Counter Project Settings
- 7.4 Summary
- Chapter 8: Pulse Width Modulation (PWM) in STM32 Microcontrollers
- 8.1 Introduction
- 8.2 PWM Project Settings
- 8.3 Summary
- Chapter 9: Real-Time Clock (RTC) in STM32 Microcontrollers
- 9.1 Introduction
- 9.2 RTC Project Settings
- 9.3 Summary
- Chapter 10: Serial Communication in STM32 Microcontrollers
- 10.1 Introduction
- 10.2 Sending Data Project Settings
- 10.3 Receiving Data Project Settings
- 10.4 Summary
- Chapter 11: Synchronous Peripheral Interface (SPI) in STM32 Microcontrollers
- 11.1 Introduction
- 11.2 SPI Settings for Master Microcontroller
- 11.3 SPI Settings for Slave Microcontroller
- 11.4 Header Code of main.c for Master Microcontroller
- 11.5 Header Code of main.c for the Slave Microcontroller
- 11.6 The main.c File Settings for Master and Slave Microcontrollers
- 11.7 Summary
- Chapter 12: Watchdog Timer in STM32 Microcontrollers
- 12.1 Introduction
- 12.2 WWDG Timer Project Settings
- 12.3 IWDG Timer Project Settings
- 12.4 Summary
- Chapter 13: Inter-Integrated Circuit (I²C) in STM32 Microcontrollers
- 13.1 Introduction
- 13.2 I²C Settings for Slave Microcontroller
- 13.3 I²C Settings for Master Microcontroller
- 13.4 Summary
- Chapter 14: Direct Memory Access (DMA) in STM32 Microcontrollers
- 14.1 Introduction
- 14.2 DMA Settings for ADC
- 14.3 Timer, ADC, and DMA Project Settings
- 14.4 DMA and USART Project Settings
- 14.5 Summary
- Chapter 15: Real-Time Operating System (RTOS) in STM32 Microcontrollers
- 15.1 Introduction
- 15.2 FreeRTOS Project Settings
- 15.3 Summary
- Chapter 16: STM32 Microcontrollers Programming using STM32duino
- 16.1 Introduction
- 16.2 Installing STM32duino in Arduino IDE
- 16.3 Automation Control System Programming
- 16.4 Multitasking in PLC Programming
- 16.5 Summary
- Chapter 17: Finite State Machine (FSM) Programming in STM32 Microcontrollers
- 17.1 Introduction
- 17.2 FSM programming using mikroC PRO for ARM
- 17.3 FSM Programming using Mbed Online Compiler
- 17.4 FSM Modular Programming Using Functions
- 17.5 Summary
- Chapter 18: STM32 Microcontrollers Programming using MATLAB/Simulink
- 18.1 Introduction
- 18.2 Pulse Generation Programming using Simulink
- 18.3 SPWM Generation Programming for Three Phase Inverter using Simulink
- 18.4 Summary
- Index