• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

stm32怎么使用外部中断

13306461000 2018-03-21 浏览量:1313
stm32怎么使用外部中断
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 外部的中断有GPIO中断,捕获中断,串口接收中断等待,都是由外设信号触发的中断,
    使用时,先对外设进行初始化,配置中断方式或是中断事件或是中断引脚,使能中断,打开中断时钟与相应外设的时钟,写中断函数,在中断函数中进行你要的操作。
    • 发布于 2018-03-21
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:11
  • 主函数里

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组
    库函数里

    对中断初始化

    void EXTIX_Init(void)
    {
    	NVIC_InitTypeDef   NVIC_InitStructure;
    	EXTI_InitTypeDef   EXTI_InitStructure;
    	
    	KEY_Init(); //按键初始化
     
    	RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);//中断时钟初始化
    
           SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);//A0连接到中断线0
    
      EXTI_InitStructure.EXTI_Line = EXTI_Line0;//LINE0
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;//中断事件
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising; //上升沿触发
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;//使能
      EXTI_Init(&EXTI_InitStructure);
    
      NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;//抢占优先级0
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x02;//子优先级2
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//使能  NVIC_Init(&NVIC_InitStructure);



    写中断服务函数,比如

    void EXTI0_IRQHandler(void)
    {
    	delay_ms(10);	
    	if(WK_UP==1)	 
    	{
    		BEEP=!BEEP; //反转
    	}		 
    	 EXTI_ClearITPendingBit(EXTI_Line0); /清空中断标志位
    }	



    • 发布于2018-03-21
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :根据客户需要pin数 匹配正确型号。 回复

  • 外部中断用GPIO引脚中断即可,上升沿触发、下降沿触发、跳边沿触发都是可以配置的
    • 发布于2018-03-21
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :BZX84B5V1 型号 和BZX84-B5V1,215可订购的器件编号,名称不同,同一颗料 回复

  • 外设中断,就是把GPIO配置成输入模式,启动这个GPIO的中断功能。
    • 发布于2018-03-21
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :有尾缀的是完整订购型号,尾缀代表包装,000:剪切带包装,289:弹药包包装 回复

  • 外部中断的使用其实与51单片机是类似的,只不过STM32的配置比较复杂,先将IO口配置成输入模式,在使用重大UN功能就行,网上搜搜一搜很多
    • 发布于2018-03-21
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :是,只是包装区别 回复

  • stm32cobemx 这个软件里面可以配置,点点鼠标就行了,配置完了生成初始化代码,自己再看看。
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :引脚发黑,确认氧化腐蚀现象。 回复

  • HAL库直接配置IO模式为GPIO_MODE_IT_FALLING等,触发模式,然后添加中断优先级等

    建议参看STM32Cube_FW_F4_V1.11.0(自己芯片类型)软件包,Projects里面有很多例程。

    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  : 回复

  • 用GPIO口来实现外部中断,而IO口的引脚号对应外中断EXTIx的线号
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  : 回复

  • 直接在CUBE上配置生成  在工程里调用功能就行了
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :原厂定制件,没有相关文件、 回复

  • 通过以下几个步骤就可以使用STM32外部中断:

        捕获.JPG

    • 发布于2018-03-22
    • 举报
    • 评论 2
    • 0
    • 0
电子老工程师 回复了  :MIC37501系列尾缀不同电压不同,可参考附件图片。MIC49300系列和MIC37501系列封装不一样,MIC49300封装:S-PAK-5, MIC37501封装:S-PAK-7:不建议替代 回复
电子老工程师 回复了  :37501和49300根本不是一个系列,"-"后面的数字不同,是输出电压不同,不可以互相替代 回复

  • 用寄存器看手册,用库函数,看函数使用说明,一般库里能找到说明,最好的方式就是去看手册,搞电的缺不了的
    • 发布于2018-03-22
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :主要看供应商发的哪个精度,同一型号对应2个精度,同时还要看下单型号有没有备注精度,请核实 回复

  • 可以直接在CubeMX软件里面配置相应的引脚用作外部中断,非常简单。

    • 发布于2018-03-30
    • 举报
    • 评论 1
    • 0
    • 0
电子老工程师 回复了  :RTL8211E-VB-CG是原厂标准型号 回复

相关问题

问题达人换一批

stm32怎么使用外部中断