使用外部开关作为中断
Using external switch as interrupt
如何在 Nucleo STM32L073RZ 微控制器中使用外部开关作为中断?
这是我的代码:
#include "stm32l0xx.h"
#include "stm32l0xx_nucleo.h"
#include "stm32l0xx_hal.h"
static void GPIO_Init(void);
int main(void)
{
HAL_Init();
GPIO_Init();
while(1)
{
}
}
static void GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/*Configure GPIO pin : PC15 */
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin_15)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
}
另外,如何将外部开关连接到我的开发板上?
连接GPIO和地之间的开关(因为你已经设置了上拉电阻)。
不确定您的中断设置是否正确。参考手册中的 PC15 似乎设置为 EXTI_15(我只是快速浏览了一下,所以这里可能是错误的)。
如何在 Nucleo STM32L073RZ 微控制器中使用外部开关作为中断?
这是我的代码:
#include "stm32l0xx.h"
#include "stm32l0xx_nucleo.h"
#include "stm32l0xx_hal.h"
static void GPIO_Init(void);
int main(void)
{
HAL_Init();
GPIO_Init();
while(1)
{
}
}
static void GPIO_Init(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
/*Configure GPIO pin : PC15 */
GPIO_InitStruct.Pin = GPIO_PIN_15;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI2_3_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(EXTI2_3_IRQn);
}
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin_15)
{
HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5);
}
另外,如何将外部开关连接到我的开发板上?
连接GPIO和地之间的开关(因为你已经设置了上拉电阻)。
不确定您的中断设置是否正确。参考手册中的 PC15 似乎设置为 EXTI_15(我只是快速浏览了一下,所以这里可能是错误的)。