本帖最后由 常见泽1 于 2022-9-1 15:05 编辑
雅特力AT32WB415外部中断(EXINT)与NVIC直接连接, EXINT包含23个边沿检测器,用于产生中断请求。每个中断线都可以独立地配置它的触发事件(上升沿、下降沿、或双边沿),
并能够单独地被屏蔽;挂起寄存器维持所有中断请求的状态。外部中断其中最多有16根可从GPIO中选择连接。
人体感应模块
在通过放大器是BISS0001将脉冲信号转化为更直观的高低电平输出,有人输出高,无人输出低。并在放大电路上设置电位器,调节输出信号的灵敏度,调节高电平持续时间。
模块接口只有三个脚,地、电源、数据线;分别计为GND、VCC、OUT
探头检测到有人移动时,OUT=1;没人移动时,OUT=0;
因此我们可以把它当成一个独立按键,按下时(有人移动)为1,松开时(没人移动)为0。
这个模块是5V供电,又找了个板子供上了5V电源
很简单就是一个外部中断,
void exint_line0_config(void)
{
exint_init_type exint_init_struct;
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
crm_periph_clock_enable(CRM_GPIOA_PERIPH_CLOCK, TRUE);
gpio_exint_line_config(GPIO_PORT_SOURCE_GPIOA, GPIO_PINS_SOURCE8);
exint_default_para_init(&exint_init_struct);
exint_init_struct.line_enable = TRUE;
exint_init_struct.line_mode = EXINT_LINE_INTERRUPUT;
exint_init_struct.line_select = EXINT_LINE_8;
exint_init_struct.line_polarity = EXINT_TRIGGER_RISING_EDGE;
exint_init(&exint_init_struct);
nvic_priority_group_config(NVIC_PRIORITY_GROUP_4);
nvic_irq_enable(EXINT9_5_IRQn, 1, 0);
}