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 ...
2022-03-26 01: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
2022-03-26 05: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.
2022-03-26 07: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.
2022-03-27 02: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.
2022-03-27 08: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!!
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.
2022-03-27 01: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...."