I'm trying to get the external interrupt running on a Nucleo-F030R8 and hit a wall.
Everything is configured and runs just fine in step mode but when I'm connecting my board to another testboard with a simple jumper wire and run the same code, an External Interrupt is triggered even when that testboard (a second Nucleo-F302R8, which should only produce a single signal peak that I want to measure with the first) is not turned on.
I'm using a mix of the HAL Library from STM and a bit code of my own.
Has somebody eventually encountered a similar problem? I'm using the System Workbench for STM32.
Part of the ISR, Interrupthandler is cut
void EXTI0_1_IRQHandler(void)
{
/* USER CODE BEGIN EXTI0_1_IRQn 0 */
if ((EXTI->IMR & EXTI_IMR_MR0) && (EXTI->PR & EXTI_PR_PR0))
{
int_flag_pin.copen = 1;
}
if ((EXTI->IMR & EXTI_IMR_MR1) && (EXTI->PR & EXTI_PR_PR1))
{
int_flag_pin.ma1 = 1;
}
/* USER CODE END EXTI0_1_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0);
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_1);
/* USER CODE BEGIN EXTI0_1_IRQn 1 */
/* USER CODE END EXTI0_1_IRQn 1 */
}
Between setting the Pin low and change rising, the Interrupt triggers.
TEST_GPIO_Port->BSRR = (uint32_t) TEST_Pin;
//HAL_GPIO_WritePin(TEST_GPIO_Port, TEST_Pin, GPIO_PIN_RESET);
TEST_GPIO_Port->BRR = (uint32_t) TEST_Pin;
change_rising(0);
Update:
Could it be that resetting the Pin through BSRR
or BRR
generates an interrupt?
I'm checking my code step-by-step and everytime the pin is getting resetted the interrupt is generated.