Embedded Software Development using C++

Why take this course?
🌟 Embedded Software Development using C++ 🌟
Course Headline: Object-oriented design and HAL application programming on STM32, ARM Cortex-M
Overview 📚
Welcome to the Embedded Software Development using C++ course, where we dive into the world of object-oriented programming (OOP) within the context of embedded systems! This course is designed for individuals who are eager to learn how to effectively apply OOP principles in C++ to develop robust and maintainable software for microcontroller systems, specifically focusing on the STM32F401RE Nucleo Board.
What You'll Learn 🚀
Core Objectives:
-
Understanding OOP Concepts: Grasp the fundamentals of abstraction, encapsulation, and polymorphism within embedded systems using C++. We'll avoid complex inheritance structures to keep things simple and approachable.
-
STM32Cube HAL Utilization: Leverage the STM32Cube HAL APIs to interact with external components like LCDs, keypads, servos, Bluetooth modules, ultrasonic sensors, and motor drivers. This approach minimizes direct register manipulation, making your code more portable and easier to maintain.
-
Code Generation & Customization: Utilize STM32CubeMX to generate code and then customize it to fit your specific application needs.
-
HAL Programming: Gain proficiency in GPIO, UART, and timer programming on the STM32 microcontroller. Master the use of timers for PWM signal generation and input capture analysis.
-
Software Design & Testing: Engage in software design before coding to ensure a clear path forward. Learn to debug your code using Keil uVision 5 and STM32CubeIDE effectively.
-
Project-Based Learning: By completing at least two hands-on projects, such as a Tic-tac-toe game console and an Autonomous car, you'll apply the skills learned in real-world scenarios.
Course Breakdown 📖
Key Components:
-
OOP with C++: Master classes, encapsulation, abstraction, polymorphism, pointers, references, and type safety to enhance your embedded software development.
-
Library Development & HAL Drivers: Develop libraries using the STM32Cube HAL drivers and external component interfacing techniques.
-
Code Generation with STM32CubeMX: Learn to generate and customize C++ code for STM32 microcontrollers using STM32CubeMX, ensuring a solid foundation for your application.
-
HAL GPIO, UART & Timer Programming: Understand the intricacies of GPIO, UART, and timer programming on the STM32 platform, with a focus on PWM signal generation and input capture functionalities.
-
Software Tools & Debugging: Get hands-on experience with Keil uVision 5 MDK, Java runtime environment, STM32CubeMx, and STM32CubeIDE to streamline your development process.
-
Professional Development: Develop the skills necessary to design and program simple, readable, and maintainable embedded software for well-defined requirements using C++.
-
Community Support: Engage with the instructor through an active Q/A section where questions are answered promptly.
Hardware & Software Requirements 🛠️
To fully benefit from this course, you'll need to:
-
Purchase hardware components such as the STM32F401RE Nucleo Board for hands-on practice.
-
Install the required software tools: Keil uVision 5 MDK, Java runtime environment (for STM32CubeMX), STM32CubeMx, and STM32CubeIDE if your board does not support HAL in Keil uVision.
Who Should Take This Course? ✋
This course is perfect for:
-
Beginners to intermediate C++ programmers looking to expand their skills into embedded systems with the STM32 platform.
-
Students who have a basic understanding of STM32 programming, including knowledge of GPIO, UART, and timers in normal counting mode.
-
Individuals who are familiar with embedded C but wish to leverage the power of object-oriented principles in their projects.
Enroll now and embark on a journey to master embedded software development using C++! With this course, you'll be well-equipped to design and develop your own innovative projects with confidence and expertise. 🌟
Course Gallery




Loading charts...