问题:
STM32F407IG的PH10引脚配置为外部中断输入时,无法正常触发中断,相邻的PH11 PH12正常。
解决办法:
向SYSCFG_EXTICR1寄存器的EXTI2[3:0] 和 SYSCFG_EXTICR3寄存器的EXTI10[3:0] 写入 二进制0b0111即可。(官方手册标错了,应该是0b0111才对)
具体代码如下
- /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] 配置 PH10 为外部中断,并设置中断优先级
- * @param 无
- * @retval 无
- */
- void EXTI_Key_Config(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- __HAL_RCC_GPIOH_CLK_ENABLE();
- /* PH10 */
- GPIO_InitStructure.Pin = GPIO_PIN_10;
- GPIO_InitStructure.Mode = GPIO_MODE_IT_FALLING;
- GPIO_InitStructure.Pull = GPIO_PULLUP;
- HAL_GPIO_Init(GPIOH, &GPIO_InitStructure);
- HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
- HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
- /*
- * 由于芯片内部缺陷,PH10和PH2的外部中断源必须同时打开,否则无法正常使用,
- * 打开(PH10/PH2)的外部中断源后,(PI10/PI2)的外部中断源无法使用,
- * (PH10/PH2)和(PI10/PI2)只能二选一
- */
- SYSCFG->EXTICR[0] |= 0x07 << 8;
- SYSCFG->EXTICR[2] |= 0x07 << 8;
- }
————————————————
版权声明:本文为CSDN博主「ZZZ_XXJ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzz_xxj/article/details/122001648
|