精华内容
下载资源
问答
  • LPC2101/02/03多包含了三个外部中断输入作为可选择的管脚功能。管脚进行组合后,外部事件可以处理成三个独立... 有四个寄存器涉及外部中断 External Interrupt
  • STM32 EXTI 外部中断寄存器学习笔记

    千次阅读 2018-09-08 22:23:05
    EXTI 外部中断寄存器                                                             ...
    EXTI 外部中断寄存器                                                 
                                         
                                                   
    EXTI_IMR 中断屏蔽寄存器                                      
      1:开放来自线x上的中断请求 保留 MR19 MR18 MR17 MR16    
      0:屏蔽来自线x上的中断请求 MR15 MR14 MR13 MR12 MR11 MR10 MR9 MR8 MR7 MR6 MR5 MR4 MR3 MR2 MR1 MR0    
                                                   
                                                   
    EXTI_EMR 事件屏蔽寄存器                                      
      1:开放来自线x上的事件请求 保留 MR19 MR18 MR17 MR16    
      0:屏蔽来自线x上的事件请求 MR15 MR14 MR13 MR12 MR11 MR10 MR9 MR8 MR7 MR6 MR5 MR4 MR3 MR2 MR1 MR0    
                                                   
                                                   
    EXTI_RTSR 上升沿触发选择寄存器                                      
      1:允许输入线x上的上升沿触发(中断和事件) 保留 TR19 TR18 TR17 TR16
      0:禁止输入线x上的上升沿触发(中断和事件) TR15 TR14 TR13 TR12 TR11 TR10 TR9 TR8 TR7 TR6 TR5 TR4 TR3 TR2 TR1 TR0
                                                   
                                                   
    EXTI_FTSR 下降沿触发选择寄存器                                      
      1:允许输入线x上的下降沿触发(中断和事件) 保留 TR19 TR18 TR17 TR16
      0:禁止输入线x上的下降沿触发(中断和事件) TR15 TR14 TR13 TR12 TR11 TR10 TR9 TR8 TR7 TR6 TR5 TR4 TR3 TR2 TR1 TR0
                                                            
                                                   
    EXTI_SWIER 软件中断事件寄存器                                                    
      0>1:将设置EXTI_PR中相应的挂起位;如果在EXTI_IMR                                
      EXTI_EMR中允许产生该中断,则此时将产生一个中断。 保留 SWIER19 SWIER18 SWIER17 SWIER16
      通过清除EXTI_PR的对应位(写入’1’),可以清除该位为0。 SWIER15 SWIER14 SWIER13 SWIER12 SWIER11 SWIER10 SWIER9 SWIER8 SWIER7 SWIER6 SWIER5 SWIER4 SWIER3 SWIER2 SWIER1 SWIER0
                                                   
                                                   
    EXTI_PR 挂起寄存器(rc w1 中断标志清除)                                      
      0:没有发生触发请求                                    
      1:发生了选择的触发请求                                    
      当在外部中断线上发生了选择的边沿事件,                                  
      该位被置’1’。在该位中写入’1’可以清除它,   保留 PR19 PR18 PR17 PR16
      也可以通过改变边沿检测的极性清除   PR15 PR14 PR13 PR12 PR11 PR10 PR9 PR8 PR7 PR6 PR5 PR4 PR3 PR2 PR1 PR0
                                                   
                                                                           
    基本配置方式                                              
    1 使能io复用时钟 RCC->APB2ENR|=0x01;                          
    2 端口映射 AFIO->EXTICR[EXTADDR]|=GPIOx<<EXTOFFSET;                    
    3 开启中断 EXTI->IMR|=1<<BITx;                          
    4 屏蔽line BITx上的事件(默认屏蔽)    //EXTI->EMR|=1<<BITx;                          
    5 选择触发方式:上升沿/下降沿/任意电平(不做设置) EXTI->RTSR|=1<<BITx;EXTI->FTSR|=1<<BITx;                    
                                                   
    端口映射寄存器 AFIO->EXTICR[1]             对应IO口:0、1、2、3 0000: PA[x]引脚 0100: PE[x]引脚                    
      AFIO->EXTICR[2] 对应IO口:4、5、6、7 0001: PB[x]引脚 0101: PF[x]引脚                    
      AFIO->EXTICR[3] 对应IO口:8、9、10、11 0010: PC[x]引脚 0110: PG[x]引脚                    
      AFIO->EXTICR[4] 对应IO口:12、13、14、15 0011: PD[x]引脚                      
    展开全文
  • 虽然说单片机开发就是对手册的研究,但是开发过程中,还是要做些笔记的,方便...配置PD口的外部中断是,发现EXTI_CR1寄存器无法写入.于是开始寻找原因. 在配置EXTI_CR1寄存器时看见" 这些位仅在CC寄存器的I...

     虽然说单片机开发就是对手册的研究,但是开发过程中,还是要做些笔记的,方便以后注意那些坑.

    工作要求所以接触了一下STM328s00f3这个芯片,配置外部中断的时候遇到了一点问题

    PS:IAR这个开发软件真不好用.

    外部中断:

    配置PD口的外部中断是,发现EXTI_CR1寄存器无法写入.于是开始寻找原因.

     

    在配置EXTI_CR1寄存器时看见"

    这些位仅在CC寄存器的I1I0位都为1(级别3)时才可以写入。这些位定义端口D
    中断触发位

    "这句话,但是CC寄存器要如何配置呢?

     首先来看看这个寄存器的描述,默认值是符合前面的要求的,并且I1 和 I0是rw的,于是尝试写入,但是没有找到地址的相关说明.

     1 #ifdef __cplusplus
     2 extern "C"
     3 {
     4 #endif
     5 
     6   __intrinsic void __enable_interrupt(void);     /* RIM */
     7   __intrinsic void __disable_interrupt(void);    /* SIM */
     8 
     9   __intrinsic __istate_t __get_interrupt_state(void);
    10   __intrinsic void       __set_interrupt_state(__istate_t);
    11 
    12   /* Special instruction intrinsics */
    13   __intrinsic void __no_operation(void);         /* NOP */
    14   __intrinsic void __halt(void);                 /* HALT */
    15   __intrinsic void __trap(void);                 /* TRAP */
    16   __intrinsic void __wait_for_event(void);       /* WFE */
    17   __intrinsic void __wait_for_interrupt(void);   /* WFI */
    18 
    19   /* Bit manipulation */
    20   __intrinsic void __BCPL(unsigned char __near *, unsigned char);
    21   __intrinsic void __BRES(unsigned char __near *, unsigned char);
    22   __intrinsic void __BSET(unsigned char __near *, unsigned char);
    23 
    24 #ifdef __cplusplus
    25 }
    26 #endif

    后来在库文件中找到了__enable_interrupt(); 只需要在这个函数之前配置外部中断寄存器就好了.

        Fun_HardInit_Hall(); //hall硬件初始化
        // 开总中断
        __enable_interrupt();

    哈哈,有点水哈   没有从寄存器说明真正的原因,以后查到了,再更新吧,IAR也没有寄存查看的功能SWIM的调试调试真的好难用.

     

    转载于:https://www.cnblogs.com/a-d-a-m/p/6865890.html

    展开全文
  • stm32外部中断寄存器配置分析

    千次阅读 2016-03-15 21:15:05
    由上图可以看到:事件和中断的触发源都是一样的 均可以是(外部触发沿和软件中断寄存器触发) 1>当一个触发沿到来或者软件触发中断开启 触发信号经过或门一方面进入请求挂起寄存器挂起,而另一方面进入图中的与门触发...

    事件和中断的区别:


    由上图可以看到:事件和中断的触发源都是一样的   均可以是(外部触发沿和软件中断寄存器触发)

    1>当一个触发沿到来或者软件触发中断开启  触发信号经过或门一方面进入请求挂起寄存器挂起,而另一方面进入图中的与门触发事件脉冲产生 若配置事件屏蔽寄存器屏蔽事件,将不会启动脉冲发生器产生脉冲信号(但是仍然会置位挂起位,这里纯属自己的理解,按照数据手册说该处不会挂起),2号路挂起后若中断寄存器允许  将向NVIC发送一个中断请求,即触发内核动作

    2>中断和事件的区别在于,事件的结果将直接导致一个输出脉冲的产生,并以此触发相应的硬件动作,此过程不需要软件的参与自动完成。  而中断则需要向处理器请求,并进入中断服务函数处理数据,需要软件的参与   降低了CPU的效率


    下面为用寄存器配置一个中断的方法

    在此之前 我们需要了解几个寄存器:

    EXTI_IMR, EXTI_EMR, EXTI_PR, EXTI_RTSR, EXTI_ETSR,  EXTI_SWIER, EXTI_PR寄存器

    外部中断寄存器 AFIO_EXTI[0-4];

    如果需要时间输出  我们还需要AFIO_EVCR寄存器

    以上配置为外设的配置  完成后 我们还需要对内核进行一个同样的配置,到此结束















    展开全文
  • LPC2114有4个外部中断,分别为EINT0、EINT1、EINT2、EINT3,具有4个相关得寄存器外部中断输入可以用于将处理器从掉电模式唤醒。 EXTINT是外部中断标志寄存器。当一个管脚选择使用外部中断功能时,对应在EXTMODE和...
    LPC21144个外部中断,分别为EINT0EINT1EINT2EINT3,具有4个相关得寄存器。外部中断输入可以用于将处理器从掉电模式唤醒。

     

    EXTINT外部中断标志寄存器。当一个管脚选择使用外部中断功能时,对应在EXTMODEEXTPOLAR寄存器中得位选择得电平或边沿将置位EXTINT寄存器的中断标志。这样来向VIC提出中断请求,如果管脚中断使能,则产生中断。低4位与外部中断引脚EINT3EINT2EINT1EINT0对应,为1时表示外部中断有效。可以通过软件对其相应位写入1清零标志位。电平激活方式下,该方式只有在管脚处于无效状态时才有效。一旦EINT0EINT3中的一位被置位并开始执行相应代码时,该位必须清零。否则EINT刚触发得事件以后将不会被识别。

    电平激活方式下,如果管脚的EINT功能被选用且管脚处于有效状态时,该位置位;边沿激活方式下,如果管脚的EINT功能被选用且管脚上出现所选边沿时,该位置位。

     

    EXTWAKE中断唤醒寄存器EXTWAKE寄存器中的使能位允许外部中断和其他源将处理器从掉电模式中唤醒。相应的EINTn功能必须映射到管脚才能实现掉电唤醒。这样做的好处是允许外部中断输入将处理器从掉电唤醒,但不产生中断;或者在掉电模式下使能中断而不会将处理器唤醒。[3:0]=EXTWAKE3EXTWAKE0,为1时允许唤醒。

     

    EXTMODE外部中断模式寄存器。该寄存器中的位用来选择EINTn的引脚是电平还是边沿激活。只有选择用作EINT功能,并且已通过VICIntEnable寄存器使能得管脚才能产生外部中断功能的中断。[3:0]=EXTMODE3XTMODE0,0时使用电平激活,为1时使用边沿激活。

     

    EXTPOLAR外部中断极性寄存器。在电平激活方式下,EXTPOLAR寄存器的位选择相应管脚是高电平还是低电平有效。在边沿激活方式下,选择是上升沿还是下降沿有效。[3:0]=EXTPOLAR3EXTPOLAR1,为1时外部中断是高电平或上升沿有效;为0时外部中断是低电平或下降沿有效。

    展开全文
  • 喜欢用寄存器的方式来敲代码, 很爽的感觉; 为了方便查阅, 工作过程中顺便把各个外设的寄存器整理成表格了; 分享给也喜欢使用寄存器操作的朋友! 你可以下载整个表格的完整包喔,我会不断完善的 : ...
  • 这次解读的stm32 使用外部中断按键控制led灯的代码 开始使用源码分析 先进个main函数 看见我们的重要函数EXTIX_INIT(); 同时使用文档解读 简单来说 1 初始化io口 :设置已经存在的状态 2 让io口和中断线建立映射 :...
  •  1.1 外部中断寄存器  24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。  寄存
  • 前几天把外部中断基本搞好了,但对几个中断寄存器的具体含义和区别不是很了解。今天特意拿起datasheet详读并网络上查了这方面的资料。将结果记录如下: S3C2440的中断寄存器有6个中断裁决器,分为2级:第一级为5...
  •  1.1 外部中断寄存器  24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。  寄存
  • 中断寄存器记录

    2020-08-27 20:23:06
    8259A有8条外部中断请求输入信号线IR0-IR7,每一条请求线上有一个相应的触发器来保存请求信号,它们形成了中断请求寄存器IRR(Interrupt Request Register)。 ⑵中断屏蔽寄存器IMR I.MR(Interrupt Mask Register)...
  • EXTI寄存器外部中断通用I/O映像中断处理函数分配EXTI寄存器一览中断屏蔽寄存器(EXTI_IMR)事件屏蔽寄存器(EXTI_EMR)上升沿触发选择寄存器(EXTI_RTSR)下降沿触发选择寄存器(EXTI_FTSR)软件中断事件寄存器(EXTI_SWIER)...
  • 中断寄存器

    2010-08-01 13:34:00
    S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,...
  • 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序)。 #include<...
  • 摘要:介绍了一种采用DM642和CPLD相配合的扩展键盘方法...CPLD管理键盘电路中的芯片逻辑,DM642的外部中断监控按键的状态。简单阐述了键盘的分类,给出系统的硬件电路原理图,在CCS软件中调试程序方法。仿真结果表明,
  • 外部中断 1.初始化 IO 口为输入。 2)开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。 3)开启与该 IO 口相对的线上中断/事件,设置触发条件。 4)配置中断分组(NVIC),并使能中断。 5)编写中断服务函数 ...
  • S3C2440中断寄存器

    2020-07-17 10:45:36
    1.中断分两大类。2.外部中断。3.内部中断。4.中断过程。 5.中断的开启。
  • 我感觉stm32的外部中断都是大同小异的,因此我以stm32g474为例,配置一下外部中断。举例引脚: PE5 配置引脚为输入模式(GPIOx_MODER); 配置触发模式(上升沿/下降沿); 配置EXTI的中断屏蔽寄存器(EXTI_IMR)...
  • ARM中断寄存器详解

    千次阅读 2012-02-28 09:45:01
    S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。...
  • 2440中断寄存器详解

    2012-04-11 16:33:00
    S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。...
  • 把前面的那些中断基本搞懂之后,突然出现了这个外部中断控制寄存器,找了好多资料都只是泛泛而谈,根本不知道具体是干什么的,搞的我一头雾水,后来知道了这个是设置EINT0~EINT23的触发方式的,但又没讲怎么去...
  • S3C2440的中断寄存器: 1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。...
  • S3C2440中断寄存器有关

    2020-03-15 14:25:41
    1.中断分两大类:内部中断和外部中断。 2.外部中断。24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体参考datesheet数据...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,623
精华内容 649
关键字:

外部中断寄存器