外部中断

STM32外部中断小结

烂漫一生 提交于 2019-11-30 11:49:21
外部中断 在STM32中,每个IO脚都可以作为外部中断的输入脚。 但是一个饮片不可能配置相同数量的中断线,来接收IO的状态( 上升,下拉,速度等 ),所以, 怎么使中断线和大数量的IO脚进行配对呢? 如上图所示的中断线配置相对应的IO脚,中断线的数量将大幅度的减少。 外部中断的一般配置方法 1、既然是对IO脚线配置,那IO脚的时钟是第一个需要配置的。 __HAL_RCC_GPIOA_CLK_ENABLE(); //开启GPIOA时钟 __HAL_RCC_GPIOC_CLK_ENABLE(); //开启GPIOC时钟 __HAL_RCC_GPIOH_CLK_ENABLE(); //开启GPIOH时钟 2、配置好IO脚的时钟之后,接着是需要配置IO脚的状态。 (上升,下拉,速度等) 是配置IO脚的状态,需要用到 HAL_GPIO_Init(GPIOA,&GPIO_Initure); 这个函数 GPIO_Initure.Pin=GPIO_PIN_0; //PA0 GPIO_Initure.Mode=GPIO_MODE_IT_RISING; // GPIO_Initure.Pull=GPIO_PULLDOWN; //下拉 GPIO_Initure.Speed=GPIO_SPEED_HIGH; //高速 HAL_GPIO_Init(GPIOA,&GPIO_Initure); 3

51单片机中断

拈花ヽ惹草 提交于 2019-11-26 14:34:30
普中51 单片机中断 51 单片机一定有的5 个中断,序号为各自的中断号,按优先级从高到低排序依次为: 0----INT0:外部中断0;1---T0:定时/计数器0;2---INT1:外部中断1;3---T1:定时/计数器1;4---RXD 和TXD:串行口中断 IE寄存器: 控制中断,IE寄存器有8位,IE={EX0,ET0,EX1,ET1,ES, , ,EA},其中每一位分别控制: EX0---INT0(外部中断0);ET0---T0(定时/计数器T0);EX1---INT1(外部中断1);ET1---T1(定时/计数器T1); ES---RXD\TXD(串行口中断);空;空;EA---总开关(当EA置1时,其他的才有效) TCON寄存器: 控制中断方式以及中断标志位,TCON={IT0,IE0,IT1,IE1,TR0,TF0,TR1,TF1},其中每一位分别表示: IT0---IT0=0 时为电平触发,IT0=1 时为下降沿触发(一般选用1);eg:IT1同理 IE0---INT0(外部中断0)中断标志;eg:IE1同理 TR0---定时/计数器T0控制;eg:TR0同理 TF0----定时/计数器T0溢出中断标志;eg:TF1同理 INT0和INT1外部中断: 工作原理: 出现中断信号时,中断标志置1,CPU 执行中断函数。 外部中断配置: INT0对应P3.2

S32K NVIC配置(以外部中断为例)

岁酱吖の 提交于 2019-11-25 16:59:52
Nested Vectored Interrupt Controller (NVIC) 包含在Cortex-M4F 中, 优先级有16级 中断相关寄存器 ISER[0-3]:Interrupt Set Enable Register ICER[0-3]:Interrupt Clear Enable Register ISPR[0-3]:Interrupt Set Pending Register ICPR[0-3]:Interrupt Clear Pending Register IABR[0-3]:Interrupt Active bit Register IP[0-122]:Interrupt Priority Register STIR:Software Trigger Interrupt Register 以外部中断 PORTC_IRQn 为例 查看 S32K1xx_DMA_INT_mapping.xlsm 屏幕剪辑的捕获时间 : 2019/8/4 6:59 第三列 NVIC Interrupt ID 表示中断号 第四列 ISER, ICER, ISPR, ICPR, and IABR 寄存器号,等于NVIC Interrupt ID 整除32 第五列 IPR寄存器号 *实际为每个寄存器存4个中断源优先级,程序已经分开定义成了0-122 直接IPR[NVIC