STM32外部中断测试
文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN7
开发环境:MDK4.23
MCU:STM32F103CBT6
说明:
STM32有20个外部中断线,其中EXTI0-EXTI15给I/O端口使用
EXTI线16连接到PVD输出
EXTI线17连接到RTC闹钟事件
EXTI线18连接到USB唤醒事件
EXTI线19连接到以太网唤醒事件(只适用于互联型产品)
源代码:
初始化:
//打开NTRX外部中断
void open_ntrx_irq(void)
{
//定义中断结构体
NVIC_InitTypeDef NVIC_InitStructure ;
//定义外部中断结构体
EXTI_InitTypeDef EXTI_InitStructure;
//定义IO初始化结构体
GPIO_InitTypeDef GPIO_InitStructure;
//初始化NTRX中断脚PB1时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; //设置为输入
GPIO_Init(GPIOB, &GPIO_InitStructure); //GPIOB初始化
//配置中断源为PB1
GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource1);
// 配置EXTI_Line1下降沿触发
EXTI_ClearITPendingBit(EXTI_Line1);
EXTI_InitStructure.EXTI_Line = EXTI_Line1;
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;
EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
EXTI_InitStructure.EXTI_LineCmd = ENABLE;
EXTI_Init(&EXTI_InitStructure);
//打开NTRX中断
NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn; //通道设置为外部中断线0
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0f; //中断占先等级0
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0f; //中断响应优先级0
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //打开中断
NVIC_Init(&NVIC_InitStructure); //初始化
//EXTI_Line1中断允许
EXTI_GenerateSWInterrupt(EXTI_Line1);
}
中断函数:
//NTRX中断
void EXTI1_IRQHandler(void)
{
if(EXTI_GetITStatus(EXTI_Line1) != RESET)
{
//清中断
EXTI_ClearITPendingBit(EXTI_Line1);
//中断标志置位
Flag_IRQ.ntrx = 1;
}
}
分享到:
相关推荐
本文将详细介绍如何利用STM32的外部中断功能来测试脉冲个数以及测量脉冲频率。 首先,我们要了解STM32的外部中断工作原理。STM32的GPIO端口支持多种中断模式,包括上升沿、下降沿、双沿(上升和下降)以及边沿检测...
STM32外部中断是嵌入式系统开发中的关键特性,尤其在实时性和响应速度要求高的应用中至关重要。STM32系列微控制器由意法半导体(STMicroelectronics)生产,广泛应用于各种电子设备,如物联网设备、工业自动化、消费...
在"selectdzj"的C8T6外部中断实验中,通过实践这些步骤,你可以深入了解STM32的中断系统,并掌握如何利用外部中断实现按键输入功能。这个实验对于理解和掌握STM32的中断机制以及实际应用中的事件驱动编程具有重要...
9. **实验步骤**:ALIENTEK MINISTM32 实验4 外部中断实验可能包含以下步骤:硬件连接(如连接按钮到STM32的某个GPIO)、编写中断初始化代码、编写中断服务函数、测试并观察中断行为。 10. **学习资源**:提供的...
STM32外部中断实验是嵌入式开发中的一个重要环节,主要涉及到STM32微控制器如何响应外部硬件事件,如按钮按下、传感器触发等。在这个实验中,我们将关注STM32与MCP2515之间的交互,MCP2515是一种常用的CAN...
在这个"STM32F1外部中断实验"中,我们将深入探讨如何利用STM32F1的库函数来实现外部中断功能,这对于实时性和响应速度要求较高的应用至关重要。 首先,我们需要了解STM32F1的中断系统。STM32F10x系列拥有高达16个...
STM32串口中断测试程序是针对意法半导体(STMicroelectronics)的STM32系列微控制器进行设计的,主要用于实现串行通信的中断处理功能。STM32是一款基于ARM Cortex-M内核的微控制器,广泛应用在嵌入式系统设计中,...
STM32外部中断实验是嵌入式开发中的一个重要环节,尤其对于初学者而言,它是理解微控制器实时响应外部事件能力的关键。在这个实验中,我们主要会接触到STM32系列的微控制器,特别是STM32F107VET6型号,这是一种基于...
外部中断按键消抖电路与STM32程序是嵌入式系统开发中常见的一环,主要目的是提高系统的稳定性和可靠性。在电子设备中,按键输入是一个常见的用户交互方式,但因为机械结构的原因,按键在按下和释放时可能会产生多次...
这个压缩包中的“实验5 外部中断实验”很可能包含了示例代码、配置文件以及测试步骤,可以帮助开发者快速理解并实现STM32的外部中断功能。通过深入学习和实践这些内容,你将能够熟练地利用STM32的中断特性,设计出更...
在本项目"exit_dancefcf_stm32外部中断初始化_"中,我们专注于使用STM32F103型号芯片进行外部中断的配置和初始化,特别是通过GPIOA(端口A)来实现这一功能。以下是对这个主题的详细解释: 1. **STM32F103简介**:...
STM32外部中断例程是嵌入式系统开发中的重要组成部分,主要负责处理来自外部硬件事件的响应。在这个实例中,我们关注的是如何利用STM32微控制器的外部中断功能来实现按键控制LED灯的亮灭。IAR6.1是IAR Embedded ...
在这个特定的示例中,我们关注的是如何在STM32CubeMX中配置FreeRTOS,并创建一个处理外部中断的例程,适用于STM32F103RCT6这款芯片。 STM32F103RCT6是STM32系列中的一款经典芯片,具有高性能、低功耗的特点,拥有多...
在本项目中,我们关注的是如何利用STM32F103C8型号芯片进行外部中断的设置与测试。STM32F103C8是一款经济型、高性能的32位微控制器,具有丰富的外设接口,适用于各种嵌入式应用,如工业控制、消费电子和物联网设备。...
在“STM8S003单片机外部中断实验”中,我们将探讨如何利用STM8S003的外部中断功能来实现一个基于按键的简单应用,即按键按下时,LED指示灯的状态翻转。 首先,我们要了解STM8S003的中断系统。STM8S003具有多个可...
在STM32F103ZET6这款微控制器上,串口(USART,通用同步/异步收发传输器)是实现与外部设备间数据交换的常用接口。本文将详细阐述STM32串口中断程序的设计与实现,以及相关标签所涉及的硬件和软件配置。 首先,STM...
在这个项目中,"STM32H750 FreeRTOS实现中断测试"旨在展示如何在STM32H750上集成并使用FreeRTOS进行中断处理。中断是嵌入式系统中关键的机制,它允许处理器在执行主任务的同时,响应外部事件,如按键输入、定时器...
这个“STM8L外部中断代码”主题涉及到的是如何利用STM8L15X系列微控制器的外部中断功能,特别是在低功耗模式下,对下降沿或低电平触发事件进行响应。 在STM8L15X微控制器中,外部中断功能允许设备在外部信号变化时...
STM32 定时器中断实验是嵌入式系统开发中的一个重要环节,尤其在基于Cortex-M32内核的STM32单片机中,定时器中断的应用广泛且至关重要。STM32系列微控制器拥有丰富的定时器资源,如基本定时器、通用定时器、高级...