Category: Tutorials

STM32F4 External interrupts tutorial 126

STM32F4 External interrupts tutorial

Each STM32F4 device has 23 external interrupt or event sources. They are split into 2 sections. First interrupt section is for external pins (P0 to P15) on each port, and other section is for other events, like RTC interrupt, Ethernet interrupt, USB interrupt and so on. October 1, 2014: Added external interrupts library. GPIO as Interrupt Interrupt lines I will show now how to configure GPIO pin to be an interrupt and how to handle it in your code with...

STM32F4 NVIC or Nested Vector Interrupt Controller 37

STM32F4 NVIC or Nested Vector Interrupt Controller

Interrupts are important in microcontrollers. WIth them you are able to stop executing main program and jump to some predefined area if there is something important. I already used interrupts in my USART library. There is an interrupt called each time data arrive to MCU. Defferent peripheral can trigger interrupt, like data come to USART, ADC finished conversion, timer overflow, and more more. NVIC NVIC or Nested Vector Interrupt Controller is used to dinamically tell which interrupt is more important and...

PWM graph 136

STM32F4 PWM tutorial with TIMERs

In this tutorial, I will show you, how to implement PWM outputs on STM32F4xx devices. This is for a lot of people pretty hard work, but believe me, it’s quite quick and easy. I will go step by step on how to make a PWM output on specific timer. Update: I made a library for PWM, available here. STM32F4 timers They have up to 14 timers inside. Table below shows their description. You have to know, that let’s say F401 doesn’t...

CMSIS - Cortex Microcontroller Software Interface Standard 198

STM32F4/29 Discovery with CMSIS library in Keil uVision

From this moment, I will use in my projects Keil uVision. It’s true, that Coocox is free, but it has some bugs, which are great fixed in Keil. Keil has some limitations for free (32KB flash support, no optimization) version, but for our examples and libraries, it is just fine. For updates, look at my Github projects repository, where are all projects and libraries. There is no included my libraries in bottom project, you have to download it manually from Github. All...