STM32F103配置两个外部中断程序引脚为PB4和PB5
时间: 2024-05-05 17:17:10 浏览: 15
要配置STM32F103的两个外部中断程序引脚为PB4和PB5,需要按照以下步骤进行:
1. 首先,打开STM32F103的Datasheet手册,找到引脚定义表,确定PB4和PB5引脚的编号为36和37。
2. 在CubeMX中选择对应的MCU型号,打开“Pinout & Configuration”选项卡。
3. 在左侧的引脚列表中找到PB4和PB5,将它们的模式设置为“GPIO Input”。
4. 在右侧的“GPIO External Interrupt”选项卡中,启用“EXTI Line[15:10] Interrupt”中的“EXTI Line[4] Interrupt”和“EXTI Line[5] Interrupt”。
5. 在左侧的“System Core”选项卡中,找到“NVIC”选项卡,启用“EXTI4_IRQn”和“EXTI9_5_IRQn”中断。
6. 生成代码并在main.c中编写中断处理函数。
下面是具体的代码:
1. 配置引脚模式
```c
/* USER CODE BEGIN PB4_Pin */
GPIO_InitStruct.Pin = GPIO_PIN_4;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE END PB4_Pin */
/* USER CODE BEGIN PB5_Pin */
GPIO_InitStruct.Pin = GPIO_PIN_5;
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
/* USER CODE END PB5_Pin */
```
2. 启用外部中断
```c
/* USER CODE BEGIN EXTI4_IRQn 0 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_4)
{
// PB4中断处理
}
else if(GPIO_Pin == GPIO_PIN_5)
{
// PB5中断处理
}
}
/* USER CODE END EXTI4_IRQn 0 */
/* USER CODE BEGIN EXTI9_5_IRQn 0 */
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == GPIO_PIN_4)
{
// PB4中断处理
}
else if(GPIO_Pin == GPIO_PIN_5)
{
// PB5中断处理
}
}
/* USER CODE END EXTI9_5_IRQn 0 */
```
注意:由于PB4和PB5都属于EXTI Line[9:5]中的引脚,因此需要同时启用EXTI4_IRQn和EXTI9_5_IRQn中断,并在中断处理函数中判断引脚编号确定中断源。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)