Programming course in C language for ARM Cortex-M4 microcontrollers, based on the microcontroller
Explore the features of the
Explore many resources of the STM32CubeIDE as well as software libraries
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.
Programming course in C language for ARM Cortex-M4 microcontrollers, based on the microcontroller
Explore the features of the
Explore many resources of the STM32CubeIDE as well as software libraries
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 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
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 STM32Cube
Introduction – Goals – Hardware and Software resources
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.
Explore CMSIS concepts and implement a solution interfacing GPIO and TIM peripherals using microcontroller registers.
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.
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.
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.
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.
Explore general-purpose timer concepts in order to create and understand a timer period elapsed interruption application.
Explore Independent Watchdog basis and create a sample application.
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.
Understand STM32 main DMA controller concepts. Use this peripheral to transfer ADC input data directly to RAM memory.
Understand STM32 main Real-time clock concepts. Follow STM32F4 firmware examples to implement a RTC Calendar application. Comprehend importante registers as the backup one.
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.
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.
Understand the USB device library concepts. Implement a USB HID application and test it with a demonstrator executable file from ST.
Implement an EEPROM emulation using microcontroller Flash memory sectors. Fully understand important concepts regarding on-chip Flash memory access and its characteristics.
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.
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.
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.
With a touch display based on ILI9341 and XPT2046 controllers, develop a HMI application using TouchGFX Middleware and graphical tool.
OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.
Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.
Find this site helpful? Tell a friend about us.
We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.
Your purchases help us maintain our catalog and keep our servers humming without ads.
Thank you for supporting OpenCourser.