我正在尝试在 Nucleo-F030R8 上运行外部中断并撞墙。
所有内容都配置好并在步进模式下运行正常但是当我用简单的跳线将我的主板连接到我的测试板并启动相同的代码时,即使我的测试板(第二个< em> Nucleo-F302R8 ,它只能产生一个信号,我用第一个测量的信号)没有打开。
我正在使用STM的HAL库和我自己的一些代码。
有人最终遇到了类似的问题吗? 我正在使用System Workbench for STM32。
ISR的一部分,Interrupthandler被削减
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 */
}
在将引脚设置为低电平并改变上升之间,中断触发。
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);
更新 可能是通过BSRR或BRR复位引脚会产生中断吗? 我正在逐步检查我的代码,每次重置引脚时都会产生中断。
答案 0 :(得分:0)
如果TEST_Pin是GPIO_PIN_0或GPIO_PIN_1引脚,则您将合法收到irq。 EXTI0_1_IRQHandler从除#0或#1引脚之外的任何端口捕获irq。