CMPE1250: Embedded Systems Fundamentals

Table of Contents

Course Overview

This course is designed as a gentle introduction to the world of embedded systems—no prior experience required. Using the Nucleo-G0B1RE board from STMicroelectronics, which features the popular Arm Cortex-M0+ processor, students will learn how computers can interact with the physical world through sensors, buttons, and LEDs. Step by step, we’ll explore how to write simple programs in C, configure hardware features, and build real-time applications. By the end of the course, students will have the confidence to tackle more advanced embedded projects and understand how these systems power everyday technologies like smart devices and robotics.

CMPE1250 – Course Schedule (Subject to Change)

Week Topics (Concepts, Skills, Issues) Activities / Assessments / Notes
1 (5) Introduction to embedded systems and the STM32 Sourcing the Nucleo-G031K8 board, install tools, review docs
2 (5) Project workflow, Segger Embedded Studio, C# to C transition ICA #01 – Segger ES and C language
3 (5) Bitwise operations, RCC register, C language essentials ICA #02 – Working with bits
4 (5) GPIO output, blinking LEDs, blocking delays ICA #03 – Explanatory Debugging
5 (5) GPIO input, creating a GPIO library ICA #04 – Bits in and bits out; Lab #1 – Logic Date Identification
6 (5) Basic USART ICA #05 – Hello?
7 (5) Clock configuration, advanced USART Lab #02 – Serial I/O
8 (5) Clock and PLL, creating clock library ICA #06 – Full speed ahead
9 (5) Basic Timer operation – polling for overflow ICA #07 – Utility functions for timing
10 (3) Timer – Output compare, creating timer library ICA #08 – Programmatic delays and waveform generation
11 (5) Timer – PWM ICA #09 – Timers and simple PWM
12 (5) Comparing 16-bit and 32-bit timers
13 (5)
14 (5)
15 (5)
16 (2)

Assignments


Resources

YouTube Playlist:

Contact

For questions and bugs reporting: