Minimal STM32 TimerInterrupt_Generic PlatformIO / Arduino timer interrupt blink example
***Note:***If you need more flexibility, see Minimal STM32 HardwareTimer PlatformIO / Arduino timer interrupt blink example where we show how to use HardwareTimer
instead of TimerInterrupt_Generic
. Note that TimerInterrupt_Generic
uses HardwareTimer
internally.
This is a minimal example of using timer interrupts on PlatformIO / Arduino using the TimerInterrupt_Generic library which runs on the Olimex E407. It will run on almost any STM32 processor but you might need to adjust PC13
to the PIN connected to the LED. The example will blink the LED once per second.
#include <Arduino.h>
#include <TimerInterrupt_Generic.h>
STM32Timer tim1(TIM1);
bool ledOn = false;
void OnTimer1Interrupt() {
ledOn = !ledOn;
digitalWrite(PC13, ledOn ? LOW : HIGH);
}
void setup() {
pinMode(PC13, OUTPUT);
// Enable TIM4
tim1.attachInterruptInterval(500000, OnTimer1Interrupt);
}
void loop() {
}
Now add
lib_deps =
khoih.prog/TimerInterrupt_Generic @ ^1.7.0
to your platformio.ini
. My full platformio.ini
looks like this:
[env:olimex_e407]
platform = ststm32
board = olimex_e407
framework = arduino
lib_deps =
khoih.prog/TimerInterrupt_Generic @ ^1.7.0