Skip to main content
abeba.1
Associate III
January 12, 2023
Question

stm32 gpio callback

  • January 12, 2023
  • 3 replies
  • 3730 views

hii

i have a stm32h753 nucleo board , witch have a user button connected to pc 13 , i am trying to implement printing on console when a button is pressed by using interrupted call back that is generated from the button press , i looked at the user manual of 753 and it says all gpio have external interrupt capabilities , i enabled the EXTI interrupt lines in the ioc project file .

and when i press the button nothing happens , i included my main file , and pictures from the nvic , what is am missing here ? in order to activate print by user button pressings.

i debugged the code and put a breakpoint in the EXTI INRUPPET HANDLER and the cpu doesn't even hit this breakpoint

and i also noticed in the gpio configuration section there is only input only mode and there is no external triggers modes when i scroll down the tab

This topic has been closed for replies.

3 replies

Pavel A.
Super User
January 12, 2023
abeba.1
abeba.1Author
Associate III
January 15, 2023

hii Pavel , thanks for your reply , but when i create the project for the nucleo h753 board , when i open the nvic tab i see that the external interrupt have different numbers than 15 to 10 , and i can't understand where those numbers come from , i attached a pic from my ioc .

in all the examples i sow the EXTI line[15:10] interrupts , but in my project i see that numbers are different EXTI line[9:5] , and i suspect that i may be relayed to the problem that the NVIC is not working with PC13 , cause 13 is not in 9:5 range .

on top of that on the GPIO configuration section when i scroll down on pc13 i don't see a mode with rising falling edge on button press

abeba.1
abeba.1Author
Associate III
January 15, 2023

..

Technical Moderator
January 12, 2023

Hello @abeba.1​,

Hope that @Pavel A.​  proposal solved your issue.

If not, and to understand why, have you checked are other interrupts at this point running successfully?

Could you please check in NVIC_ISERx, that the given interrupt is enabled.

 /* Enable and set EXTI lines 15 to 10 Interrupt to the lowest priority */
 
 HAL_NVIC_SetPriority(EXTI15_10_IRQn, 2, 0);
 
 HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);

To give better visibility on the answered topics, please click on "Best answer" on the reply which solved your issue or answered your question.Best regards,FBL
S.Ma
Principal
January 14, 2023

Interruptd and callbackd must be microseconds brief. So avoid uart transmit blocking function calls within.