精华内容
下载资源
问答
  • RT-Thread 外部中断的设置

    千次阅读 2019-10-15 10:18:36
    关于rtt的外部中断设置官网又专门文档介绍 ,我这里就不多做介绍了 pin设备但我在使用时候遇到一个小问题, 问题:外部中断设置边沿触发就进入不了中断,设置就可以;主要代码如下: void key_pin_0(void * ...

    关于rtt的外部中断设置官网又专门的文档介绍 ,我这里就不多做介绍了 pin设备但我在使用的时候遇到一个小问题,
    问题:外部中断设置边沿触发就进入不了中断,设置别的就可以;主要代码如下:

    void key_pin_0(void * args)
    {
        if(rt_pin_read(key_0))
        {
            led_off();
        }
        else
        {
            led_on();
        }
    }
    
    void key_init(void)
    {
        rt_pin_mode(key_0, PIN_MODE_INPUT_PULLUP);   
    	/* 边沿触发(上升沿和下降沿都触发)*/
        rt_pin_attach_irq(key_0, PIN_IRQ_MODE_RISING_FALLING , key_pin_0, RT_NULL);
        rt_pin_irq_enable(key_0, PIN_IRQ_ENABLE); 
    }
    

    但是发现现象是按键触发不了中断的,现象如下:
    在这里插入图片描述
    如果你也遇到这种问题很可能是由于按键的设置模式不对,我这里手册是这样写的:
    在这里插入图片描述
    而我的代码里默认是这样的:
    在这里插入图片描述
    把这行代码改成自己pin口的设置方式就可以正常使用了。

    展开全文
  • 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0中断程序将被中断去执行外部中断1中断程序(数码管加1显示程序)。 #include<...

    设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序)。

    #include<reg51.h>
    #define uchar unsigned char;
    sbit key1=P3^2;
    sbit key2=P3^3;
    unsigned int i;
    uchar led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
    uchar tube[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

    void delay1s(unsigned char time)
    {
    unsigned int i,j,k;
    for(i=0;i<time;i++)
    for(j=0;j<1000;j++)
    for(k=0;k<144;k++);
    }

    int main(void)
    {
    IT0=1;
    IT1=1;
    EA=1;
    EX0=1;
    EX1=1;
    PX0=1;
    PX1=0;
    while(1);
    }
    void int1(void) interrupt 0
    {
    while(!key1);
    for(i=0;i<10;i++)
    {
    P1=0x00;
    P2=tube[i];
    delay1s(1);
    }
    }
    void int2(void) interrupt 2
    {
    while(!key2);
    for(i=0;i<8;i++)
    {

    	P0=led[i];
    	delay1s(1);
    }
    

    }
    视频:
    https://www.bilibili.com/video/BV1jK411u7JH/

    展开全文
  • 详细介绍S3C6410外部中断的设置步骤,适合除学者。
  • STM8 IO外部中断设置问题(使用库函数...在之后程序里面,设置打开IO口外部中断,并设置触发电平,代码如下:(坑在这里,注意!!!) GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_IT);//上拉,开中...

    STM8 IO外部中断设置问题(使用库函数)

    STM8,掉坑:

    程序里面,首先开启了总中断,enableInterrupts();     // 打开总中断  

    在之后的程序里面,设置打开IO口外部中断,并设置触发电平,代码如下:(坑在这里,注意!!!)

        GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_IT);//上拉,开中断
        EXTI_SetPinSensitivity(EXTI_PIN_BLE_STA, EXTI_Trigger_Falling);//下降沿中断

    之后杯具发生了,一旦IO口产生一个下降沿,程序马上死掉,看门狗复位。

    定位发现,是因为不停触发中断引起的。但为什么不停触发中断呢?不是设置为下降沿中断了吗?

    原因:

    因为在设置触发电平时,已经打开了总中断,那么设置无效!!!意思就是根本没有设置到下降沿触发!!!那么用的就是默认值,为低电平触发。当IO口拉低后,就一直不停的触发中断。

    解决:一定要在关闭总中断的情况下,设置电平触发。

    如果一开始不需要中断,可以禁止IO口中断,但是要先设置触发电平,之后需要中断时,在打开中断就行了,之后不需要再设置触发电平。

    例子:

    1、   一开始不需要中断,禁止IO中断,但要设置触发电平

        GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_No_IT);
        EXTI_SetPinSensitivity(EXTI_PIN_BLE_STA, EXTI_Trigger_Falling);//设置触发方式时,一定要关闭总中断,否则失败

    2、在之后的程序,需要开启中断,直接打开IO中断即可,这里不需要再设置触发电平

       GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_IT);
        

    展开全文
  • STM32F4外部中断设置

    2020-05-09 21:24:41
    从上图也可以看出,所有GPIO口都可以当作外部中断/事件源。但是同时只能有16条位于不同GPIO口上中断/事件源。 2、中断/事件源配置: 选择EXIT0-16中断/事件线中断/事件源在相应SYSCFG_EXTICRx寄存器里配置...

    基础知识

    1、外部中断/事件框架: STM32F407一共有16+7条中断/事件线(如下图),也就是说在STM32工作过程中同时支持22条外部中断/事件。
    STM32F4中断
    从上图也可以看出,所有的GPIO口都可以当作外部中断/事件源。但是同时只能有16条位于不同的GPIO口上的中断/事件源。
    2、中断/事件源配置: 选择EXIT0-16中断/事件线的中断/事件源在相应的SYSCFG_EXTICRx寄存器里配置。如配置EXIT0-3中断/事件线的源寄存器为下图:
    STM32F4外部中断配置寄存器
    3、中断与事件: 在这里我们需要辨识以下中断与事件的区别:
    中断是需要CPU参与的,需要软件的中断服务函数才能完成中断后产生的结果;
    事件是靠脉冲发生器产生一个脉冲,进而由硬件自动完成这个事件产生的结果,当然相应的联动部件需要先设置好,比如引起DMA操作,AD转换等;(参考
    4、更多关于STM32F407x外部中断手册与寄存器可下载(仅是外部中断部分)

    代码设计

    .c代码
    void mpuIntInit(void)
    {
    	EXTI_InitTypeDef EXTI_InitStruct;
    	GPIO_InitTypeDef GPIO_InitStruct;
    	NVIC_InitTypeDef NVIC_InitStruct;
    	
    	//开启相关时钟
    	RCC_AHB1PeriphClockCmd(MPU_EXIT_RCCPERIPH, ENABLE);
    	
    	//GPIO设置-下拉输入
    	GPIO_InitStruct.GPIO_Mode 	= GPIO_Mode_IN;
    	GPIO_InitStruct.GPIO_OType 	= GPIO_OType_PP;
    	GPIO_InitStruct.GPIO_Pin 	= MPU_EXIT_GPIO_PIN;
    	GPIO_InitStruct.GPIO_PuPd 	= GPIO_PuPd_DOWN;
    	GPIO_InitStruct.GPIO_Speed 	= GPIO_Speed_25MHz;//大于等于50最好开启IO补偿
    	GPIO_Init(MPU_EXIT_GPIO, &GPIO_InitStruct);
    	
    	//EXIT设置-中断模式上升沿触发
    	EXTI_InitStruct.EXTI_Line 	 = MPU_EXTI_LINE;
    	EXTI_InitStruct.EXTI_LineCmd = ENABLE;
    	EXTI_InitStruct.EXTI_Mode 	 = EXTI_Mode_Interrupt;
    	EXTI_InitStruct.EXTI_Trigger = EXTI_Trigger_Rising;
    	EXTI_Init(&EXTI_InitStruct);
    	
    	//NVIC设置-中断配置
    	NVIC_InitStruct.NVIC_IRQChannel = MPU_EXIT_IT_IRQn;
    	NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 0;//最高 
    	NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0;
    	NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE;
    	NVIC_Init(&NVIC_InitStruct);
    	
    	//中断源配置-PA1
    	SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource1);
    }
    
    
    void MPU_EXIT_IT_HANDLER()
    {
    	if(EXTI_GetITStatus(MPU_EXTI_LINE) == SET)
    	{
    		EXTI_ClearITPendingBit(MPU_EXTI_LINE);
    		printf("coming");
    	}
    }
    
    .h代码
    #define MPU_EXIT_GPIO			GPIOA
    #define MPU_EXIT_GPIO_PIN		GPIO_Pin_1
    #define MPU_EXIT_RCCPERIPH		RCC_AHB1Periph_GPIOA
    #define MPU_EXTI_LINE			EXTI_Line1
    #define MPU_EXIT_IT_IRQn		EXTI1_IRQn
    #define MPU_EXIT_IT_HANDLER		EXTI1_IRQHandler
    #define MPU_EXTI_PORT_SOURCE	EXTI_PortSourceGPIOA
    #define MPU_EXTI_PIN_SOURSE		EXTI_PinSource1
    
    void mpuIntInit(void);
    void MPU_EXIT_IT_HANDLER(void);
    

    总结

    一般配置外部中断/事件一般步骤:

    1、先配置对应GPIO的时钟;
    RCC_AHB1PeriphClockCmd
    2、初始化配置GPIO(根据触发方式设置上下拉模式);
    GPIO_Init
    3、初始化配置EXTI中断线;
    EXTI_Init
    4、如需中断则初始化配置NVIC
    NVIC_Init
    5、设置中断线的中断源
    SYSCFG_EXTILineConfig

    展开全文
  • 51单片机中断的使用及优先级设置 51单片机有两个外部中断,两个定时器/计数器,两个外部中断分别是int0,int1。定时器/计数器分别是t0,t1,还有一个串口中断TI/RI,加起来有五个中断。它们在硬件上的排列顺序是INT0...
  • 2018/4/16stm321....作为STM32而言,每一个IO口都可以作为外部中断的中断输入口,但是,中断线只有16条,于是采用了16个中断线来对应GP[OX_1~GPIOX-15的操作,通过映射配置具体到GPIO口2.简单过...
  • STM32F407的外部中断设置

    千次阅读 2013-01-29 11:39:58
    外部中断必须配置好EXTI和NVIC 使用以下函数打开SYSCFG时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE) GPIO设置如下 void GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_...
  • 外部中断

    2021-05-07 17:27:46
    STM32 的每个 IO 口都可以作为外部中断的中断输入口 STM32F103 的中断控制器支持 19 个外部中断/事件请求 线 0~15:对应外部 IO 口的输入中断 线 16:连接到 PVD 输出 线 17:连接到 RTC 闹钟事件 线 18:连接到 ...
  • zigbee外部中断

    千次阅读 2013-03-17 14:24:05
    今天开始学习买了好久的zigbee开发板。跟着送的教材学习,发现教材有些许...首先外部中断的设置分为这几步骤(直接上代码了): ① P0IEN |= 0x30; //P0_4设为中断  ②PICTL |= 0x01; //P0口下降沿触发  ③IEN
  • 外部中断的使用

    千次阅读 2015-08-17 14:25:04
    中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。...
  • corebootWe continue to investigate external device interrupt routing... 我们将继续研究x86系统中的外部设备中断路由设置。 In Part 1 (Interrupt controller evolution) we looked at the theory behind inter...
  • STM32的外部中断

    2020-01-16 14:40:46
    STM32 的每个 IO 都可以作为外部中断的中断输入口, STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状态位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F103 的19 个外部中断为: 线 0~15:...
  • 发现触发方式设置为下降沿机器关电居然进不了PVD,必须是设置为EXTI_Trigger_Rising_Falling方式,很奇怪,要给你示波器看了VCC是从3.3V慢慢降到0V。从3.3V降到2V维持了200MS样子。麻烦懂大牛指点下,谢谢!...
  • STC8951单片机的外部中断

    万次阅读 2018-10-12 07:50:49
    以程序为例: #include&lt;reg52.h&... //中断的设置,首先设置中断的触发方式,再设置开启终端,最后开启总中断。 IT1=1; //设置外部中断1的触发方式为下降沿 //顺序保证...
  • 51中 外部中断

    2016-09-19 23:30:13
    外部中断的程序和time0、time1的程序差不多:  一、打开外部中断 EA = 1;11 二、设置外部中断触发方式 IT0 = 1; //INT0中断请求触发,1为负边沿触发11 三、打开外部中断函数 EX0 = 1; //enable int011 ...
  • CM3支持256个中断,16个内核中断,240个外部中断,256级可编程中断设置。 STM32使用了其中一部分,16个内核中断,107系列有68个可屏蔽中断(103系列只有60个),16级可编程中断优先级。 中断寄存器: ISER[8],...
  • 把前面那些中断基本搞懂之后,突然出现了这个外部中断控制寄存器,找了好多资料都只是泛泛而谈,根本不知道具体是干什么,搞我一头雾水,后来知道了这个是设置EINT0~EINT23触发方式,但又没讲怎么去...
  • STM32 的每个 IO 都可以作为外部中断的中断输入口,STM32F103 的中断控制器支持 19 个外部中断/事件请求。每个中断设有状位,每个中断/事件都有独立的触发和屏蔽设置。 STM32F103的 19 个外部中断为: 线 0~15:对应...
  • 2440 外部中断

    2018-04-07 22:08:00
    2440外部中断的使用 1、设置io为外部中断引脚  通过2440数据手册可以知道需要使用io的外部中断需要配置那些位    a、通过上面的表格可以看出,如果要使用io的外部中断需要把对应的位设置为10  例如:GPF0和...
  • 外部中断使用指南(寄存器设置

    千次阅读 2016-09-11 21:51:01
    实验板子:tiny210(芯片:s5pv210) ...实验目的:通过外部中断操作两个按键实现对LED灯亮灭控制 步骤:①初始化GPIO端口,使GPIO为外部中断状态;(寄存器:GPxxCON)  例:    ②配置
  • 外部中断的基本步骤: 1.打开外部中断时钟AFIO 2.中断线配置(GPIO_EXTILineConfig()) 3.EXTI中断初始化配置(EXTI_InitTypeDef) 4.NVIC中断优先级设置(NVIC_InitTypeDef) 5.外部中断处理函数(在startup_stm...
  • STM32外部中断详解

    2020-08-11 07:53:36
    ARM Coetex-M3内核共支持256个中断,其中16个内部中断,240个外部中断和可编程的256级中断优先级的设置。STM32目前支持的中断共84个(16个内部+68个外部),还有16级可编程的中断优先级的设置,仅使用中断优先级设置...
  • 中断对于开发嵌入式系统来讲的地位绝对是毋庸置疑的,在C51单片机时代,一共只有5个中断,其中2个外部中断,2个定时/计数器中断和一个串口中断,但是在STM32中,中断数量大大增加,而且中断的设置也更加复杂。...

空空如也

空空如也

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

外部中断的设置