Обучающие видео » Компьютерные видеоуроки и обучающие интерактивные DVD » Разное (Компьютерные видеоуроки)
Mastering Microcontroller and Embedded Driver DevelopmentГод выпуска: 8/2026
Производитель: Udemy
Сайт производителя:
https://www.udemy.com/course/mastering-microcontroller-with-peripheral-driver-development/Автор: FastBit Embedded Brain Academy, Kiran Nayak
Продолжительность: 28h 30m
Тип раздаваемого материала: Видеоурок
Язык: Английский
Описание: This in-depth microcontroller programming course teaches bare-metal driver development using Embedded C, writing drivers for STM32 GPIO, I2C, SPI, and USART entirely from scratch. It is designed for beginners to advanced audiences and demystifies the internal working of the microcontroller and its peripherals by coding step by step and extracting maximum information from datasheets, reference manuals, and specs, with protocol decoding using logic analyzers, debugging, testing, hints, and tips throughout. The course uses no third-party libraries and no blind coding: you write your own driver APIs by dealing directly with the peripheral registers of the MCU, diving into the datasheet and reference manual to configure and handle peripherals. These techniques are generic and can be applied to any microcontroller, and the code can serve as templates for building peripheral drivers on other MCUs.
In each lecture you learn something new to use in your work or projects, handling peripherals with greater clarity and debugging problems quickly. This is explicitly not the Arduino style of programming: while Arduino is fine for quick prototyping, this course avoids third-party libraries and instead codes everything by referring to the technical reference manual, creating your own library. The power of this approach is that you can speculate and debug like a pro when things go wrong due to bugs. The course is developed around the STM32F407xx Discovery board (MCU vendor: STMicroelectronics) using the free STM32CubeIDE, though it is not bound to one MCU type—if you already have a development board running an ARM Cortex-M3/M4 processor, you can continue using it. Updates include the latest STM32CubeIDE, live-session driver development with STM32-Arduino communication exercises using SPI and I2C, bus matrix/memory map/vector table/interrupt design discussions with code examples, Eclipse IDE setup for ARM Cortex-M MCUs, English closed captions, and a dedicated support team for Q&A.
[spoiler="Содержание"]
01. Notes and Information3. What is this course all about (05:57)
02. Development board used in our courses1. About MCU Development board (03:27)
04. IDE installation1. Downloading STM32CubeIDE (03:33)
2. Installation-Windows (00:43)
3. Installation-Ubuntu (02:01)
4. Embedded Target (02:48)
5. Documents required (02:44)
05. Creating a project using STM32CUBEIDE1. Creating Hello-World project (09:53)
2. SWV working principle (09:07)
3. Testing Hello-World through SWV (05:32)
4. OpenOCD and Semihosting to use printf (05:59)
06. Embedded Code Debugging Tips and tricks1. Debugging options (04:55)
2. Single stepping (10:18)
3. Disassembly and Register windows (03:48)
4. Breakpoints (06:16)
5. Expression and variable windows (04:32)
6. Memory browser windows (07:56)
7. Call stack and fault analyzers (07:25)
8. Data watch-points (04:32)
9. SFR windows (04:42)
10. Other basic features of IDE (04:59)
07. Understanding MCU Memory Map1. Understanding Memory Map of the MCU Part 1 (05:10)
2. Understanding Memory Map of the MCU Part 2 (03:04)
3. Understanding Memory Map of the MCU Part 3 (08:31)
08. MCU Bus Interfaces1. MCU Bus Interfaces Explanation Part 1 I-CodeD-CodeS-Bus (13:21)
2. MCU Bus Interfaces Explanation Part 2 AHBAPB1APB2 (08:13)
3. MCU Bus Interfaces Explanation Part 3 QA session (11:26)
4. Understanding MCU Bus Matrix (06:19)
09. Understanding MCU Clocks and Details1. Understanding MCU Clocking SystemPart1 (05:57)
10. Understanding MCU Clock tree1. Understanding MCU clock sources and HSE (11:04)
2. HSI and RCC registers (11:24)
3. Peripheral clock configuration (12:39)
4. Exercise HSI measurements (08:34)
5. About USB logic analyzer (05:12)
6. Code implementation (12:22)
7. Exercise HSE measurements (08:39)
11. Understanding MCU Vector table1. Understanding MCU Vector Table (24:11)
12. Understanding MCU interrupt Design , NVIC, Interrupt handling1. Understanding MCU interrupt Design , NVIC, Interrupt handling Part 1 (10:03)
2. Understanding MCU interrupt Design , NVIC, Interrupt handling Part 2 (06:33)
3. Understanding MCU interrupt Design , NVIC, Interrupt handling Part 3 (13:31)
13. Importance of Volatile Keyword1. Importance of Volatile Keyword Part-1 (09:53)
2. Importance of Volatile Keyword-Part 2 (07:42)
14. GPIO Must know concepts1. GPIO pin and GPIO port (02:21)
2. GPIO behind the scene (03:00)
3. GPIO input mode with high impedance state (01:13)
4. GPIO input mode with pull-updown state (01:15)
5. GPIO output mode with open drain state (05:53)
6. GPIO output mode with push pull state (02:47)
7. Optimizing IO power consumption (03:11)
15. GPIO Programming structure and Registers1. GPIO programming structure (02:44)
2. Exploring GPIO PORT and pins of STM32F4xx Discovery board (00:57)
3. GPIO Mode register(used to set mode for a pin) (05:39)
4. Input configuration of a Microcontroller's GPIO Pin (11:42)
5. Output Configuration of a GPIO Pin in Push pull mode (02:39)
6. Output Configuration of a GPIO Pin in open drain mode (04:57)
7. Input stage of a GPIO pin during output configuration (00:34)
8. Alternate functionality Configuration of a GPIO pin (02:45)
9. GPIO out put type register explanation (01:06)
16. GPIO Registers SPEED, PULL UPDOWN, IDR and ODR1. GPIO output speed register and its applicability (05:39)
2. GPIO Pull up and Pull down register (00:58)
3. GPIO input data register (01:05)
4. GPIO output data register and summary of various modes discussed (02:30)
17. GPIO Alternate functionality register and example of usage1. Alternate functionality settings of a GPIO pin with example Part 1 (04:44)
2. Alternate functionality settings of a GPIO pin with example Part 1 (05:37)
18. GPIO peripheral clock control1. Enabling and disabling GPIO peripheral clock (01:25)
19. GPIO driver development overview and Project creation1. GPIO driver development overview (03:49)
2. MCU Specific header file and its contents (02:26)
3. New project creation and creating MCU specific headerfile (04:26)
4. Include path settings (02:17)
20. Updating MCU specific header file with bus domain and peripheral details1. Writing base address C macros for MCU's embedded memories Part 1 (03:38)
2. Writing base address C macros for MCU's embedded memories Part 2 (02:13)
3. Defining base addresses of different bus domains (06:00)
4. Defining base addresses of AHB1 Peripherals (03:02)
5. Defining base addresses of APB1 and APB2 Peripherals (01:52)
6. Defining base addresses conclusion (04:48)
21. Structuring peripheral registers1. Address of peripheral registers (01:50)
2. Structuring peripheral registers (13:04)
3. Peripheral definition macros (04:04)
22. Writing Clock enable and disable macros1. Writing peripheral clock enable and disable C Macros (07:53)
2. Project include settings and build (02:59)
23. GPIO driver API requirements and handle structure1. Creating GPIO driver header and source file (01:47)
2. Defining GPIO handle and configuration structure (05:15)
3. Driver API requirements and adding API prototypes (06:47)
4. Driver API input parameters and return types (09:00)
5. Driver empty API implementation and documentation (03:03)
24. GPIO driver API Implementation Clock control1. Implementation of GPIO peripheral clock control API (02:20)
25. GPIO driver API Implementation GPIO init and de-init1. Writing user configurable macros (07:40)
2. Implementation of GPIO init API (06:30)
3. Implementation of GPIO init API contd (02:22)
4. Configuring Alternate function registers (08:53)
5. GPIO de-init API implementation (04:49)
26. GPIO driver API Implementation GPIO data read and write1. Implementation of GPIO input port read and input pin read APIs (04:04)
2. Implementation of GPIO output port write and output pin write APIs (02:20)
3. Implementation of GPIO pin toggle API (01:11)
27. Exercise1. Exercise LED toggling with PUSH PULL configuration (11:15)
2. Exercise LED toggling with OPEN DRAIN configuration (06:13)
3. Exercise Handling on board LED and Button (11:13)
4. Exercise Connecting external button and circuit explanation (09:45)
5. Exercise Testing button interface (02:45)
6. Exercise Button interrupt introduction (01:13)
28. GPIO pin Interrupt configuration1. GPIO pin Interrupt configuration coding Part 1 (06:54)
2. GPIO pin Interrupt configuration coding Part 2 (05:11)
3. GPIO pin Interrupt configuration coding Part 3 (01:06)
4. GPIO pin Interrupt configuration coding Part 4 (15:01)
5. GPIO pin Interrupt configuration coding Part 5 (09:41)
6. GPIO pin Interrupt configuration coding Part 6 (10:19)
7. GPIO pin Interrupt configuration coding Part 7 (12:12)
29. Exercise GPIO interrupts1. Exercise External button interrupt implementation (21:29)
2. Exercise Debugging the application Part 1 (08:59)
3. Exercise Debugging the application Part 2 (03:55)
30. MCU IO Pin specifications1. STM32 Pin specifications (14:40)
2. Pin current characteristics (12:21)
3. Logic levels (16:55)
31. SPI introduction and bus details1. Introduction to SPI Bus (06:20)
2. SPI comparison with other protocols (04:08)
3. Importance of SPI slave select pin (02:23)
4. SPI Minimum bus configuration (02:23)
5. SPI behind the scene data communication principle (04:02)
32. SPI bus configuration and functional block diagram1. SPI bus configuration discussion full duplex, half duplex and simplex (05:41)
2. SPI functional block diagram explanation (06:49)
33. STM32 NSS pin settings and management1. NSS settings in STM32 master and slave modes (02:58)
2. STM32 SPI hardware and software slave managements (06:27)
34. SPI CPOL and CPHA discussion1. SPI CPOL and CPHA discussion (11:54)
2. SPI CPOL and CPHA waveform example (07:42)
35. SPI serial clock discussion1. SPI peripherals of your Microcontroller (01:27)
2. SPI Serial clock frequency (05:06)
36. SPI Driver API requirements and configuration structure1. SPI API requirements and configuration items (07:06)
2. updating MCU specific header file with SPI related details (01:42)
3. SPI adding API prototypes to driver header file (05:17)
37. SPI Driver API Implementation Clock control1. Implementation of SPI peripheral clock control API (04:19)
38. SPI Driver API Implementation SPI init1. SPI user configuration options writing and register bit definition macros (18:17)
2. Implementation of SPI init API Part 1 (03:16)
3. Implementation of SPI init API Part 2 (04:22)
39. SPI Driver API Implementation Send Data1. Implementation of SPI send data API Part 1 (07:32)
2. Implementation of SPI send data API Part 2 (04:48)
3. Implementation of SPI send data API Part 3 (05:41)
4. Implementation of SPI send data API Part 4 (01:01)
40. Exercise SPI Send Data1. Exercise to test SPI Send Data API (02:03)
2. Finding out microcontroller pins to communicate over SPI2 (04:14)
3. Exercise Code implementation Part 1 (04:15)
4. Exercise Code implementation Part 2 (07:22)
5. Exercise Code implementation Part 3 (05:30)
6. Exercise Testing (14:55)
41. Exercise STM32 master and Arduino Slave communication1. Exercise Communicating with Arduino slave (12:24)
2. Exercise Coding Part 1 (06:56)
3. Exercise Coding Part 2 (03:07)
4. Exercise Coding Part 3 (03:45)
5. Exercise Testing (07:06)
42. SPI Driver API Receive data1. Implementation of SPI data receive API Part 1 (02:05)
2. Implementation of SPI data receive API Part 2 (01:50)
43. Exercise SPI receive data1. Exercise SPI command and response based communication (08:18)
2. Exercise Coding Part 1 (10:07)
3. Exercise Coding Part 2 (09:05)
4. Exercise Coding Part 3 (13:37)
44. SPI interrupts1. SPI peripheral interrupting the processor (06:46)
45. SPI interrupt mode APIs1. SPI interrupt mode API implementation and changes to handle structure (05:04)
2. SPI send data with interrupt API implementation (04:35)
3. SPI receive data with interrupt implementation (01:35)
46. SPI Driver API IRQ handling1. SPI Handling of interrupts (04:10)
2. SPI IRQ handler implementation Part 1 (07:38)
3. SPI IRQ handler implementation Part 2 (09:16)
4. SPI IRQ handler implementation Part 3 (09:40)
5. Exercise (15:50)
47. Common problems in SPI1. Common problems in SPI and Debugging Tips (06:14)
48. I2C introduction and I2C signals1. I2C introduction and differences with SPI (11:57)
2. I2C SDA and SCL signals (03:27)
49. I2C modes1. I2C standard and fast mode (03:57)
50. Understanding I2C Protocol1. I2C Protocol explanation (05:45)
2. I2C START and STOP conditions (09:16)
3. I2C ACK and NACK (03:01)
4. I2C Data validity (03:47)
51. I2C master and slave communication1. Example of master writing to slave (03:38)
2. Understanding repeated START condition (05:21)
52. STM32 I2C functional block diagram1. I2C functional block diagram (04:04)
53. I2C driver API requirements and config structures1. I2C driver API requirements (06:34)
2. I2C handle and configuration structure (00:29)
3. I2C user configurable macros (04:56)
4. I2C API prototypes (02:59)
5. Steps for I2C init implementation (03:57)
54. I2C serial clock discussion(SCLK)1. I2C serial clock settings with explanation (09:45)
2. Clock Stretching (03:30)
55. I2C Driver API I2C Init1. Implementation of I2C init API Part 1 (10:23)
2. Implementation of I2C init API Part 2 (04:44)
3. Implementation of I2C init API Part 3 (07:47)
56. I2C Driver API I2C Master send data1. I2C transfer sequence diagram for master sending data (10:27)
2. Implementation of I2C master sending data API Part 1 (06:17)
3. Implementation of I2C master sending data API Part 2 (02:15)
4. Implementation of I2C master sending data API Part 3 (04:26)
5. Implementation of I2C master sending data API Part 4 (03:02)
6. Implementation of I2C master sending data API Part 5 (01:59)
57. I2C pull up resistance , rise time and bus capacitance1. I2C pull up resistance , rise time and bus capacitance discussion (17:49)
2. I2C rise time calculation (03:54)
58. Exercise1. Exercise Introduction (10:19)
2. Exercise Coding Part 1 (09:35)
3. Exercise Coding Part 2 (04:03)
4. Exercise Testing (05:25)
59. I2C Driver API I2C Master receive data1. I2C transfer sequence diagram for master receiving data (12:15)
2. Assignment I2C master receive data API implementation (01:44)
3. Implementation of I2C master receive data API Part 1 (07:50)
4. Implementation of I2C master receive data API Part 2 (03:24)
60. Exercise1. Exercise Reading data from the I2C slave (06:25)
2. Exercise Coding Part 1 (05:01)
3. Exercise Coding Part 2 (13:45)
4. Exercise Coding Part 3 (03:39)
5. Exercise Testing repeated start (08:03)
61. I2C Interrupts and IRQ numbers1. I2C IRQ and interrupt discussion (05:41)
2. I2C errors and importance of BUSY flag (08:49)
3. I2C handle structure modification (02:29)
4. I2C adding interrupt related macros and interrupt APIs (03:17)
62. I2C interrupt based APIs1. Assignment I2C interrupt APIs implementation (02:10)
2. Implementation of I2C interrupt based APIs (02:06)
63. I2C IRQ handler implementation1. I2C IRQ handler implementation Part 1 (08:41)
2. I2C IRQ handler implementation Part 2 (04:42)
3. I2C IRQ handler implementation Part 3 (08:10)
4. I2C IRQ handler implementation Part 4 (03:07)
5. I2C IRQ handler implementation Part 5 (03:54)
6. I2C IRQ handler implementation Part 6 (12:04)
7. I2C IRQ handler implementation Part 7 (03:35)
8. I2C IRQ handler implementation Part 8 (04:17)
9. I2C error IRQ handler implementation (03:26)
64. Exercise1. Exercise Testing I2C interrupt APIs part 1 (19:05)
2. Exercise Testing I2C interrupt APIs part 2 (02:02)
65. I2C slave programming1. I2C slave programming discussion (06:01)
2. I2C transfer sequence diagram for slave transmitter (08:07)
3. I2C slave support in driver (05:20)
66. Exercise1. Exercise I2C slave programming (02:59)
2. Exercise Coding Part 1 (14:40)
3. Exercise Testing (02:19)
4. Exercise Modifying I2C transactions (04:02)
67. Common problems in I2C1. Common Problems in I2C and Debugging Tips (03:50)
68. UART Essentials1. Intro UART vs USART (03:14)
2. Understanding UART pins (02:34)
3. UART frame formats (01:45)
4. Baud Rate (02:18)
5. Synchronization bits (01:28)
6. UART Parity (03:53)
69. UART functional block and Peripheral Clock1. Exploring UART functional block (02:26)
2. UART peripheral clock (01:53)
70. UART Communication1. UART Transmitter (03:17)
2. Uart Receiver (04:29)
71. USART driver development1. USART driver development confiugrable items (05:06)
2. USART driver APIs prototypes (02:15)
3. Configuration options and USART registers (10:05)
4. USART Driver API USART Init (01:54)
5. USART Driver API Tx and Rx assignment (01:29)
6. USART Driver API Send data (05:26)
72. USART oversampling and baudrate1. USART oversampling (07:10)
2. USART Baud rate calculation Part-2 (07:59)
3. USART Baud rate calculation Part-2 (04:10)
4. USART baudrate coding (06:03)
73. Exercise1. Exercise USART send data to arduino (16:48)
2. communicating with PC over UART (03:45)
74. USART interrupts1. USART interrupt discussion (03:03)
2. Exercise (03:20)
75. Exercise RTC on LCD1. Real time clock on LCD (18:38)
2. DS1307 RTC registers (19:58)
3. RTC code implementation (21:39)
4. RTC coding for set time and date (07:07)
5. RTC coding for get time and date (06:59)
6. BCD and Binary manipulation functions (09:25)
7. Writing RTC application (18:15)
8. RTC and Systick (12:34)
9. LCD connections (04:59)
10. Significance of LCD pins (06:10)
11. LCD initialization (08:22)
12. LCD initialization flowchart (10:13)
13. Sending command and data to LCD (13:07)
14. Creating LCD command code (13:57)
15. Testing (17:57)
[/spoiler]
Файлы примеров: не предусмотрены
Формат видео: MP4
Видео: AVC, 1280x720, 16:9, 30fps, 952kbps
Аудио: AAC, 44.1Hz, 128kbps, stereo
[spoiler="Скриншоты"]

[/spoiler]