Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Embedded Systems Bare-Metal Programming Ground Up™ (STM32F4)
Getting Started - Constructing Peripheral Registers from Memory Addresses
Downloading our Integrated Development Environment (IDE) (2:34)
Installing our Integrated Development Environment (IDE) (2:38)
Getting the right Documentation for Bare-Metal Development (6:06)
Coding : Locating the Ports and Pins of Components on the Nucleo board (8:01)
Coding : Defining Addresses of Modules using information from the Documentation (20:54)
Coding : Creating required Registers using Information from Documentation (19:32)
Coding : Configuring Pins using the Registers we Created (9:19)
Coding : Creating Registers from Structure Members (20:49)
Notice
General Purpose Input/Output(GPIO)
Overview of ARM Cortex-M General Purpose Input/Output Module (7:24)
Coding : Developing the GPIO Output Driver (28:16)
Coding : Controlling GPIO Outputs using the Bit Set/Reset Register (BSRR) (6:06)
Coding : Developing the GPIO Input Driver (11:36)
Universal Asynchronous Receiver-Transmitter(UART)
Overview of the UART Protocol (7:43)
Coding : Developing the UART Transmitter Driver (27:12)
Coding : Testing the UART Transmitter Driver (8:17)
Coding : Retargeting printf (2:57)
Coding : Making the Driver more Modular (4:15)
Coding : Developing the UART Receiver Driver (8:20)
Coding : Testing the UART Receiver Driver (4:56)
Analog to Digital Conversion (ADC)
Understanding ADC Independents Modes (8:38)
Introduction to Analog to Digital Conversion (4:02)
Coding : Developing the ADC Single Conversion Driver (36:52)
Coding : Developing the ADC Continuous Conversion Driver (3:56)
The System Tick (SysTick) Timer
Overview of the System Tick Timer (7:51)
Coding : Developing the System Tick Timer Driver (17:14)
General Purpose Timers
Overview of General Purpose Timers (9:31)
Commonly used Timer registers (3:32)
Coding : Developing the General Purpose Timer Driver (13:40)
Coding : Developing the Timer Output Compare Driver (19:25)
Coding : Developing the Timer Input Capture Driver (23:54)
Interrupt Programming
Introduction to Interrupts (19:44)
Coding : Developing the GPIO Interrupt Driver (17:33)
Coding : Testing the GPIO Interrupt Driver (10:15)
Coding : Developing the UART Receiver Interrupt Driver (13:11)
Coding : Developing the ADC Interrupt Driver (9:34)
Coding : Developing the Systick Interrupt Driver (7:45)
Coding : Developing the Timer Interrupt Driver (7:24)
Direct Memory Access (DMA) Driver Development
Overview of the Direct Memory Access (DMA) Module (12:23)
Coding : Developing the UART Transmitter DMA Driver Pt.1 (10:13)
Coding : Developing the UART Transmitter DMA Driver Pt.2 (23:54)
Coding : Testing the UART Transmitter DMA Driver (14:55)
Inter-Integrated Circuit (I2C)
Introduction to I2C (9:21)
Coding : Implementing the I2C Init function (20:15)
Coding : Implementing the I2C Byte Read function (14:49)
Coding : Implementing the I2C Burst Read function (7:16)
Coding : Implementing the I2C Burst Write function (5:45)
Coding : Configuring the ADXL345 Accelerometer using the I2C driver (22:29)
Coding : Testing the ADXL345 Accelerometer using the I2C driver (12:30)
Serial Peripheral Interface (SPI)
Introduction to Serial Peripheral Interface (SPI) (11:19)
Coding : Implementing the SPI GPIO Initialization function (10:49)
Coding : Configuring the SPI Parameters (8:44)
Coding : Implementing the SPI Transmit (7:33)
Coding : Implementing the SPI Receive (6:02)
Coding : Configuring the ADXL345 Accelerometer using the SPI Driver (15:01)
Coding : Testing our ADXL345 Driver (2:50)
Closing
Closing Remarks
Teach online with
Coding : Configuring Pins using the Registers we Created
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock