gpt4 book ai didi

c - 设置引脚后触发外部中断

转载 作者:行者123 更新时间:2023-12-03 21:27:46 26 4
gpt4 key购买 nike

我正在尝试让外部中断在
Nucleo-F030R8
并撞墙。

一切都已配置并在步进模式下运行良好,但是当我使用简单的跳线将我的板连接到另一个测试板并运行相同的代码时,即使该测试板(一秒钟)也触发了外部中断
Nucleo-F302R8 ,
它应该只产生一个我想用第一个测量的信号峰值)没有打开。

我混合使用了来自 STM 的 HAL 库和我自己的一些代码。

有人最终遇到了类似的问题吗?
我正在使用 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重置Pin或 BRR产生中断?
我正在逐步检查我的代码,每次重置引脚时都会生成中断。

最佳答案

如果 TEST_Pin 是 GPIO_PIN_0 或 GPIO_PIN_1 引脚,您将合法收到 irq。 EXTI0_1_IRQHandler 从任何端口捕获 irq,但来自 #0 或 #1 引脚。

关于c - 设置引脚后触发外部中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46810605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com