Externai interupts for I/O pin in OUTPUT
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-26 11:17 AM
I'm using a board Nucleo Stm32F401RE on Stm32Cube 1.8.
A simple question : I have cofigured, in MX, I/O pin PC5 as GPIO_EXT_INT5
with interrupt in falling edge , pull_up enabled and NVIC[9:5] enabled
Remember: in Nucleo board PA5 pin control in OUTPUT a green led on board
Genereting the configuration code I have:
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = LD2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
GPIO_InitStruct.Pull = GPIO_NOPULL;
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(LD2_GPIO_Port, &GPIO_InitStruct);
/*Configure GPIO pin : PC5 */
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
OK.
In stm32f4xxit.c I have:
void EXTI9_5_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(LD2_Pin);
}
WHY LD2_PIN ??? I asked interrupt for GPIO_PIN5 in GPIOC in Falling edge!
many thanks ...
- Labels:
-
GPIO-EXTI
-
Interrupt
-
STM32CubeMX
-
STM32F4 Series
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-26 1:09 PM
The EXTI interrupts don't care about the GPIO port, only about the pin number. LD2_Pin == GPIO_PIN_5 in you case, so the code is not wrong, maybe not plausible.
hth
KnarfB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-26 5:54 PM
Did you create the "PtPin" name?
There have been complaints about the tools muddling up pin names/designations.
But what PC5 gets configured with doesn't look problematic for working as an EXTI, the "Output" mode isn't carrying over between individual pin configurations here.
Up vote any posts that you find helpful, it shows what's working..
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-26 7:37 PM
The "PtPin" and inappropriate use of user defined pin names are artifacts of Cube generator.
Already reported several times. Can only hope they fix it soon.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-27 2:27 AM
Manually configure the pin as non exti, then hack the EXTI hw register to enbale the inrerrupt. I guess it is similar to people who need EXTI on alternare function pins.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-27 8:19 AM
The correct PtPin was
/*Configure GPIO pin : PtPin */
GPIO_InitStruct.Pin = tasto_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(tasto_GPIO_Port, &GPIO_InitStruct);
Nothing useful in the stm32f4xx_it.c file. This was an example....
Obviously in the real application I had at least 4 output pins which conflicted with EXTI pins. I changed the names in the stm32f4xx_it.c file by hand. But all this wastes a lot of time, especially if you are a teacher, with 20 young people who have some difficulty understanding how interrupts work ..... If you use two EXTI on two pins of the same number, MX obviously reports the conflict . In this case I did not understand which name is chosen. Thanks and good job!!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-27 11:10 AM
For the original question (can an output pin be used as EXTI) - no, EXTI pins of course should be input.
Using pins soldered to LEDs does not look as good idea.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content
‎2022-03-27 1:32 PM
The pins of a micro can control a signaling LED (not a lighting led), obviously through a resistance of discrete value. All STM Nucleo boards (and also boards from other manufacturers) control one to two LEDs. From data-sheet DocID024738 Rev 10 ,page 92 ".. The GPIOs (general purpose input/outputs) can sink or source up to ±8 mA...."
