Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Mastering STM32 microcontrollers
Rating: 4.2 out of 5(110 ratings)
871 students

Mastering STM32 microcontrollers

Developing applications exploring many STM32F4 peripherals
Last updated 6/2023
English

What you'll learn

  • Explore the features of the STM32F407 microcontrollers by knowing its electrical characteristics, its main registers and applications
  • Explore many resources of the STM32CubeIDE as well as software libraries, HAL API, and a bunch of middlewares to accelarate the development task
  • Provide practical skills for diagnosing common programming failures through the use of STM32CubeIDE embeeded debugger tools, and STM32CubeMonitor
  • Develop applications integrating microcontroller peripherals such as ADC, USART, USB, TIM, RTC, SPI, GPIO, IWDG, etc
  • Develop solutions for Graphic Display and Touch controller, uSD Cards, Ethernet interface and much more.

Course content

1 section20 lectures15h 52m total length
  • INITIAL CONSIDERATION11:49

    Introduction – Goals – Hardware and Software resources

  • MCU CONCEPTS11:07

    Explore important microcontroller hardware and software documentation. Find in firmware examples and it’s reference documentation a great starting point for your project development proccess.

  • GPIO CMSIS1:15:54

    Explore CMSIS concepts and implement a solution interfacing GPIO and TIM peripherals using microcontroller registers.

  • GPIO HAL51:32

    Explore HAL and LL reference document. Create na application mixing a delay solution implemented with register direct manipulation and a GPIO solution using HAL API functions instead.

  • EXTI HAL1:05:19

    Understand External Interrupt main features and it’s concept. Implement a EXTI solution and use IDE embeeded debugging features in order to solve common software issues. Install STM32CubeMonitor tool and set it for working as a debugger auxiliary graphical tool.

  • PWM24:15

    Explore PWM features and implement a solution to control LED brightness.

    Erratum: TIM14 is connected to APB1 bus, but 42Mhz is a maximum frequency for other peripherals instead (Labeled: APB1 peripheral clocks)! In this case, TIMER/PWM peripheral has an internal PLL and the frequency is 2x42Mhz = 84Mhz.

    main.c: __HAL_TIM_SET_AUTORELOAD(&htim14,2000);  //set the pwm frequency to 100Hz (84MHz/420) = 200kHz | 200kHz/2000 = 100Hz.



  • IC48:13

    Explore Input Capture features and implemente a frequencimeter solution, capable to retrieve frequency and pulse width values. Using PWM output as a generator signal source. Graphical monitoring option is possible with STM32CubeMonitor tool.


    Erratum: TIM14 is connected to APB1 bus, but 42Mhz is a maximum frequency for other peripherals instead (Labeled: APB1 peripheral clocks)! In this case, TIMER/PWM peripheral has an internal PLL and the frequency is 2x42Mhz = 84Mhz.

    main.c: __HAL_TIM_SET_AUTORELOAD(&htim14,2000);  //set the pwm frequency to 100Hz (84MHz/420) = 200kHz | 200kHz/2000 = 100Hz.

  • TIM30:52

    Explore general-purpose timer concepts in order to create and understand a timer period elapsed interruption application.

  • IWDG24:35

    Explore Independent Watchdog basis and create a sample application.

  • ADC Basis38:11

    Understand STM32 main ADC characteristics and create a polling application in order to test the peripheral. Explore and observe results using a graphical monitoring interface with STM32CubeMonitor.

  • ADC DMA35:53

    Understand STM32 main DMA controller concepts. Use this peripheral to transfer ADC input data directly to RAM memory.

  • RTC1:02:37

    Understand STM32 main Real-time clock concepts. Follow STM32F4 firmware examples to implement a RTC Calendar application. Comprehend importante registers as the backup one.

  • USART Basis25:36

    Understand STM32 main USART characteristics and create a polling application in order to test the peripheral. Use STM32CubeMonitor and Termite 3.1 as serial terminal tool.

  • USART Advanced41:28

    Apply advanced technics using serial port idle interrupt and DMA to create a variable lenght serial port reception with low MCU processing resources.

    Erratum: Regarding the macro __HAL_DMA_GET_COUNTER it retrieves the number of bytes still waiting to be received considering the DMA_BUF_SIZE (255) specified in the HAL_UART_Receive_DMA function, and not the number of bytes arrived in the peripheral. Thus, the operation implemented in the project (255 - __HAL_DMA_GET_COUNTER) results in the total bytes received by the peripheral.

  • USB HID1:05:38

    Understand the USB device library concepts. Implement a USB HID application and test it with a demonstrator executable file from ST.

  • EEPROM Emulation1:01:40

    Implement an EEPROM emulation using microcontroller Flash memory sectors. Fully understand important concepts regarding on-chip Flash memory access and its characteristics.

  • FATFS uSD1:13:00

    Develop a FAT file system application using FatFs Middleware. Use SDIO as hardware peripheral connection to uSD card. Perform step by step debugging in order to execute open, read, write and close instructions.

  • LWIP1:18:31

    With a LAN8720 ETH board and using the LwIP Middleware and the TCP/IP stack demonstration project from ST, develop a interesting TCP server project. Use Hercules 3.2.8 as TCP terminal tool.

  • ETH IAP44:08

    Follow STM32F4 firmware examples to implement IAP over the ethernet. Use TFTPD64 tool and Hercules 3.2.8 to load MCU program throught TFTP protocol.

  • LCD + Touch (ILI9341 + XPT2046)1:21:52

    With a touch display based on ILI9341 and XPT2046 controllers, develop a HMI application using TouchGFX Middleware and graphical tool.

Requirements

  • STM32F407 Development board + aditional peripheral boards and display

Description

Programming course in C language for ARM Cortex-M4 microcontrollers, based on the microcontroller STM32F407.

Explore the features of the STM32F407 microcontrollers by knowing its electrical characteristics, its main registers and applications.

Explore many resources of the STM32CubeIDE as well as software libraries, HAL API, and a bunch of middlewares to accelarate the development task.

Provide practical skills for diagnosing common programming failures through the use of STM32CubeIDE embeeded debugger tools, or even by monitoring and terminal tools as STM32CubeMonitor.

Develop applications integrating microcontroller peripherals such as ADC, USART, USB, TIM, RTC, SPI, GPIO, IWDG, etc. With those peripherals and their software resources, develop solutions for Graphic Display and Touch controller, uSD Cards, Ethernet interface and much more.

Common hardware resources avaluable in the market as STM32F407 based development boards, Touch LCD Display based on ILI9341 and XPT2046,  LAN8720 Ethernet expansion board, uSD card, USB to serial adapter, ST-Link V2 Programmer, Potentiometer and Dupont FxF Jumpers are applied in this course.

Complementary documentation as Application Notes, User Manuals, Reference Manuals, Datasheets, Firmware Packages and much more, can be downloaded in their last version directly form ST website. Software like STM32CubeIDE, STM32CubeMonitor, USB HID Demonstrator, can be downloaded directly from ST website too.

Who this course is for:

  • Programmers
  • Engineers
  • Technicians
  • Electronic hobbyists