External interrupts from user button¶
Location: | https://github.com/theCore-embedded/example_button_interrupt |
---|---|
External HW: | UART-to-USB converter |
EXTI - the external interrupt.
An external interrupt is a computer system interrupt that happens as a result of outside interference, whether that’s from the user, from peripherals, from other hardware devices or through a network. These are different than internal interrupts that happen automatically as the machine reads through program instructions.
In this application, one particular type of external interrupt is used: GPIO line interrupt. When voltage level changes on the line (e.g. when button is pressed), interrupt is generated.
Supported targets (boards)¶
Target name | Configuration file | Description |
---|---|---|
stm32f4_disc | stm32f4_discovery.json | STM32F4 discovery board |
tiva_tm4c_launchpad | tiva_tm4c_launchpad.json | TM4C123G LaunchPad Evaluation Kit |
Wiring¶
If you have Tiva TM4C Launchpad - simply connect it to the USB.
If you have STM32F4 Discovery board:
Attach any preferable UART-to-USB converter module (such as this) according to following pinout:
PD8 (USART3 TX) module’s RX PD9 (USART3 RX) module’s TX GND module’s GND Connect your STM32 Discovery board to the PC.
Preparing¶
Install and initialize theCore (if not done previously):
pip3 install tcore tcore bootstrap
Download the example:
tcore init --remote https://github.com/theCore-embedded/example_button_interrupt
Step into the project directory:
cd example_button_interrupt
Building¶
For STM32 Discovery board:
tcore compile --target stm32f4_disc
For Tiva TM4C LaunchPad:
tcore compile --target tiva_tm4c_launchpad
Running¶
Launch
minicom
with device associated with USB <-> UART converter. (/dev/ttyUSB0
here used as an example):# From new terminal tcore runenv "minicom -D /dev/ttyUSB0"
Or the same, but with superuser permissions:
# From new terminal tcore runenv --sudo "minicom -D /dev/ttyUSB0"
Run:
On TivaC launchpad:
tcore flash --sudo
For old STM32F407G-DISC boards, with STLINK/V2:
tcore flash --sudo
For new STM32F407G-DISC1 boards, with STLINK/V2.1:
tcore flash --sudo --debugger-config stlink-v2.1
Expected output¶
Observe console output using minicom
if running on the embedded device):
Welcome to theCore
the_core v0.3.0.307 9ff344b-dirty
Starting EXTI (button interrupt) demo
Every time you press a button (SW1 on TivaC board, USR_BTN on STM32F4 Discovery), following output will be displayed:
Button pressed!