STM32F407的PD13中断配置代码
时间: 2024-05-12 14:13:14 浏览: 152
下面是基于STM32CubeMX生成的HAL库代码,用于配置PD13的中断:
```c
/* 使能PD端口时钟 */
__HAL_RCC_GPIOD_CLK_ENABLE();
/* 配置PD13为输入模式 */
GPIO_InitTypeDef GPIO_InitStruct = {0};
GPIO_InitStruct.Pin = GPIO_PIN_13;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* 配置PD13的中断优先级 */
HAL_NVIC_SetPriority(EXTI15_10_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI15_10_IRQn);
/* 配置PD13为外部中断触发源 */
HAL_GPIO_WritePin(GPIOD, GPIO_PIN_13, GPIO_PIN_RESET);
HAL_EXTI_GetHandle(&hexti, EXTI_LINE_13);
HAL_EXTI_RegisterCallback(&hexti, HAL_EXTI_COMMON_CB_ID, EXTI_Callback);
HAL_EXTI_SetConfigLine(&hexti, EXTI_MODE_IT, EXTI_TRIGGER_RISING);
```
其中,`EXTI_Callback`是一个回调函数,当PD13触发中断时会被调用。需要根据具体应用场景实现该函数,例如读取PD13的状态并进行相应的处理。另外,需要在main函数中启动HAL库的中断服务:
```c
HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_4);
HAL_Init();
HAL_NVIC_EnableIRQ(SysTick_IRQn);
```
这样就完成了PD13的中断配置。
阅读全文