首页 > 其他分享 >STM32外部中断小记

STM32外部中断小记

时间:2024-04-09 22:55:42浏览次数:24  
标签:NVIC ENABLE 中断 STM32 InitStructure GPIO RCC EXTI 小记

一、EXTI配置步骤

//1.配置RCC时钟
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx,ENABLE);
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);// 开启AFIO时钟,AFIO:GPIO复用/重映射功能

//2.配置EXTI GPIO端口及工作模式(输入模式)
//3.配置EXTI 中断线、模式(上升沿、下降沿、双边沿)、响应方式
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOx,GPIO_PinSourcex);//将EXTI挂载到GPIO引脚上
  EXTI_Line必须与GPIO引脚保持一致,PA0-Px0连接在EXTI0,PA1-Px1连接在EXTI1,以此类推
  EXTI_Mode_Interrupt:中断模式;
  EXTI_Mode_Event:事件模式,该模式不会立即触发中断,只是在寄存器上把相应的事件标志位置1,应用这个模式需要不停查询相应寄存器;
//4.配置NVIC

二、编写中断函数

void EXTIx_IRQHandler();
//读取中断函数状态
EXTI_ClearITPendingBit();
//清除中断函数标志
EXTI_ClearITPendingBit();

三、代码

void EXTI_Config(){

	GPIO_InitTypeDef GPIO_InitStructure;
	EXTI_InitTypeDef EXTI_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
	
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3;
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);

      GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource3);

	EXTI_InitStructure.EXTI_Line=EXTI_Line3;
	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=EXTI3_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority=1;
	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
	NVIC_Init(&NVIC_InitStructure);
	
}

void EXTI3_IRQHandler(){

	if(EXTI_GetITStatus(EXTI_Line3)!=RESET){
		
		EXTI_ClearITPendingBit(EXTI_Line3);
		PCout(13)^=1;
	}
	
}

标签:NVIC,ENABLE,中断,STM32,InitStructure,GPIO,RCC,EXTI,小记
From: https://www.cnblogs.com/au-up/p/18125066

相关文章

  • STM32F103C8T6 技术参数和性能特点
    STM32F103C8T6是意法半导体(STMicroelectronics)生产的一款基于ARMCortex-M3内核的32位微控制器。它具有以下主要功能: 1.ARMCortex-M3内核:STM32F103C8T6采用32位ARMCortex-M3内核,工作频率最高可达72MHz,提供较高的处理能力。 2.存储器:内置高达64kB的闪......
  • STLINK-V3PWR连接STM32最小系统板方法(含引脚分布)
    前段时间导师给我了一个STLINK-V3PWR,让我试着用它下载程序到STM32单片机上,我找了半天发现网上资源挺少的,于是自己搞了一下,从官网下载了相关的规格书,然后连了一下。下面是我自己找的官方资源然后翻译的。下面是STLINK-V3PWR的调试端口引脚分布。手上只有STM32F103C6T6A......
  • 初学STM32 SDIO (三)
    1.STM32的SDIO功能框图​ STM32控制器有一个SDIO,由两部分组成:SDIO适配器和APB2接口,SDIO适配器提供SDIO主机功能,可以提供SD时钟、发送命令和进行数据传输。APB2接口用于控制器访问SDIO适配器寄存器并且可以产生中断和DMA请求信号。​ SDIO使用两个时钟信号,一个是SDIO适配......
  • 配置STM32单片机的两个高速输入端子接受AB相高速脉冲信号输入的方法
    目录1.配置GPIO引脚:2.配置TIM计数器:3.配置中断:4.计数器值的获取:        要使用STM32单片机的两个高速输入端子接受AB相高速脉冲信号输入,并使用TIM计数器的不同通道对每相的计数,请按照以下步骤操作:1.配置GPIO引脚:        首先,需要将两个高速输入......
  • 初学STM32 SDIO (二)
    ​ SD命令由主机发出,以广播命令和寻址命令为例,广播命令是针对与SD主机总线连接的所有从设备发送的,寻址命令是指定某个地址设备进行命令传输。1.SD命令格式SD命令格式固定为48bit,都是通过CMD线连续传输的,数据线不参与。起始位和终止位:命令的主体包含在起始位与终止位之间,它......
  • 初学STM32 SDIO(一)
    1.SDIO协议简介​ SDIO全称是安全数字输入/输出接口,控制器对SD卡进行读写通信操作一般有两种通信接口可选,一种是SPI接口,另外一种就是SDIO接口。多媒体卡(MMC)、SD卡、SDI/O卡都有SDIO接口。STM32F407系列控制器有一个SDIO主机接口,它可以与MMC卡、SD卡、SDI/O卡以及C......
  • 基于STM32单片机智能垃圾桶红外感应雨滴检测语音设计21-766
    21-766、STM32智能垃圾桶设计-E18-KEY-红外对管-ISD1820-水滴-电磁锁产品功能描述:本设计有STM32F103C8T6单片机核心板电路+红外避障传感器电路+按键电路+红外对管电路+ISD1820语音模块电路+水滴传感器电路+电磁锁电路组成。1、通过红外避障传感器和按键均可以控制电磁锁的开......
  • 基于STM32单片机汽车防盗GPS定位GSM短信加速度检测设计21-880
    21-880、STM32汽车防盗系统设计-震动-ADXL345-GPS-GSM-RELAY产品功能描述:本设计由STM32F103C8T6单片机核心板电路+震动传感器电路+ADXL345重力加速度传感器电路+GPS模块电路+GSM模块电路+继电器控制电路组成。1、系统将是否有震动以及是否有倾倒以及对应的GPS经纬度信息,每隔......
  • Proteus8.0仿真应用设计(二十六)基于FreeRTOS、STM32F103C8、HAL库、4x4矩阵键盘应用设
    一、仿真原理图:二、部分代码:        按键采集uint8_tKeyScan(void){ uint8_tvalue=0x00; KeyPort->ODR=0x00; KeyPort->ODR=0xf7; if((KeyPort->IDR&0xf0)!=0xf0) { HAL_Delay(50); if((KeyPort->IDR&0xf0)!=0xf0) { value=......
  • STM32CubeMX+MDK通过I2S接口进行音频输入输出(全双工读写一个DMA回调)
    一、前言目前有一个关于通过STM32F411CEUx的I2S总线接口控制SSS1700芯片进行音频输入输出的研究。SSS1700是具有片上振荡器的3S高度集成的USB音频控制器芯片。SSS1700功能支持96KHz24位采样率,带外部音频编解码器(24位/96KHzI2S输入和输出)并具有内置立体声16/24......