// 引脚 PA0 的外部中断配置
void Key_GPIO_Init(void)
{
// 设置 PA0 口为上拉输入模式
RCC->AHBENR |= RCC_AHBENR_GPIOAEN; // 打开该引脚的GPIO时钟
GPIOA->MODER &= ~GPIO_MODER_MODER0_1; // 设置为输入模式
GPIOA->MODER &= ~GPIO_MODER_MODER0_0;
GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR0_1; //上拉 == 相当于设置初始电平为 1
GPIOA->PUPDR |= GPIO_PUPDR_PUPDR0_0; // 如果设置为下拉的话,初始电平为 0
// 设置 PA0 外部中断的响应方式 -- 上升沿 和 下降沿 触发
EXTI->IMR |= EXTI_IMR_MR0; // 外部中断线开关
EXTI->EMR |= EXTI_EMR_MR0; // 外部中断事件开关
EXTI->FTSR |= EXTI_FTSR_TR0; // 下降沿触发
EXTI->RTSR |= EXTI_RTSR_TR0; // 上升沿触发
// 开外部中断及优先级配置
// 优先级数值为 0x000000c0 (越大优先级越低) -- 每个优先级占8位
NVIC->IP[EXTI0_1_IRQn / 4] |= (0x000000c0 << (8 * (EXTI0_1_IRQn % 4))); // 设置优先级
NVIC->ISER[0] |= (1 << EXTI0_1_IRQn); // 打开外部中断
}
// 中断处理函数
void EXTI0_1_IRQHandler(void)
{
EXTI->PR |= EXTI_PR_PR0; 需要手动清除标志位
if(根据当前引脚的当前状态来判断该引脚是上升沿 或 下降沿 产生的中断)
//
}
关键字:STM32F0 EXTI 外部中断配置
引用地址:
STM32F0(3)EXTI 外部中断配置
推荐阅读最新更新时间:2024-03-16 15:42
STM32学习笔记4:外部中断
NVIC: STM32F40xx/STM32F41xx的92个中断里面,包括10个内核中断和82个可屏蔽中断,具有16级可编程的中断优先级,而我们常用的就是这82个可屏蔽中断。 那么我们如何管理82个外部中断呢? 首先,对STM32中断进行分组,组0~4。同时,对每个中断设置一个抢占优先级和一个响应优先级值。分组配置在SCB- AIRCR寄存器,如下表: 抢占优先级 & 响应优先级区别1.高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。 2.抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。 3.抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。 4.如果两个中断的
[单片机]
C51/C52单片机的中断(EXTI)介绍及实现(二)
一、什么是中断 重复说明,CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。 简单来说就是:打断当前正在做的事,去执行另外的事,执行完后再回来接着做前面被打断的事,如图所示: 程序中的表现方式: 引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统。 二、51单片机
[单片机]
LIN总线开发:STM32F0 TJA1020
LIN总线协议最新版本是V2.2,历史版本有V1.0,V1.2,V1.3,V2.0,V2.1,V2.2。具体的区别请自行百度,这里只介绍对于写代码最需要关心的问题。 V1.0属于起初版本,各项定义都不完整,目前实际没有应用; V1.2也没有应用,相对V1.0稍微完善了名称描述; V1.3是比较完善的版本,目前存在比较旧版的汽车总线中,采用经典校验; V2.0,V2.1是在V1.3基础上增加了诊断协议,直接继承自ISO15765-3(CAN协议中的诊断定义相同);采用增强型校验+经典校验两种; V2.2版本没有明显修改,只是对各类文字描述做了修正。 ------------------------------
[单片机]
中断之外部中断
ARM Cortex M3共有256个中断。 STM32F103CB共有43个外部中断和16个内部中断。 具有相同数值编号的IO口被分配为同一组,共用一条中断请求线,如下图: 所以共有15条中断线,另外 ●EXTI线16连接到PVD输出 ●EXTI线17连接到RTC闹钟事件 ●EXTI线18连接到USB唤醒事件 寄存器:1、外部中断配置寄存器 AFIO_EXTxCR1------- 用于选择输入中断源 Pin 0..3 AFIO_EXTxCR2------- 用于选择输入中断源 Pin 0..7 AFIO_EXTxCR2-------
[单片机]
从LCD电极读数的单片机接口技术
摘要 以测量仪表中常见的时分割驱动法驱动的段式LCD显示器为例,分析LCD显示器的电极连接结构和驱动信号波形;介绍单片机读取仪表LCD读数的接口电路。此接口电路应用于笔者开发的自动血压监控仪的研制及临床应用项目中,由8031单片机读取血压计的收缩压、舒张压、心率以及充气和放气时瞬时压强。实验证明,此接口电路工作稳定、可靠。 通过测量仪表拾取被测信号是单片机前向通道设计中常用的数据采集方式。通常,接口电路从仪表电路中取得相关的模拟信号,经过A/D转换或V/F 转换送入单片机;或者取得一个频率信号,经整形后送入单片机 。然而,有些测量仪表电路中可能找不到这样的信号。以电容式压力传感器血压计为例,尽管从其振荡电路中可以取得一
[单片机]
stm32f407外部中断
一,外部中断的概念 STM32F4 的每个 IO 都可以作为外部中断输入。 STM32F4 的中断控制器支持 22 个外部中断 / 事件请求: EXTI线0~15:对应外部IO口的输入中断。 EXTI线16:连接到PVD输出。 EXTI线17:连接到RTC闹钟事件。 EXTI线18:连接到USB OTG FS唤醒事件。 EXTI线19:连接到以太网唤醒事件。 EXTI线20:连接到USB OTG HS(在FS中配置)唤醒事件。 EXTI线21:连接到RTC入侵和时间戳事件。 EXTI线22:连接到RTC唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用
[单片机]
STM32的学习心得之外部中断/事件控制器(EXTI)
外部中断/事件我的理解是可以将单片机的IO口全部设置为外部中断口,我们可以根据触发哪个IO口中断,去执行相应的中断处理函数。这个其实很简单,51一般有2个外部中断口,而stm32将其扩展,每个IO口都可以作为外部中断口。 外部中断配置也很简单,只需要打开相应的IO口配置,时钟,打开stm32f10x_conf.h里的 #include stm32f10x_exti.h ,配置EXIT和中断处理函数即可。下面是简单的实例(基于3.0库): void GPIO_Configuration(void)//配置GPIOC_5口作为外部中断口 { GPIO_InitTypeDef GPIO_InitStructure;
[单片机]
使用USART接口进行STM32F0的在线升级
1 前言 STSW-STM32116是ST官网基于标准库的针对STM32F0的USART进口IAP示例程序,下载链接:http://www.stmcu.org/document/detail/index/id-213120 工程原本是针对STM32F051,本文将介绍如何移植到STM32F070,并针对移植的过程中的问题逐个处理。 2 KEIL下移植 IAP程序一般分为两个,一个是IAP,一个是APP,IAP存放在内置FLASH的0x8000000的起始位置,而APP则存放在离这个位置一定距离的位置,这个距离一定是大于或等于IAP本身所占空间大小,本例子为0x8003000。 下载资源后,打开STM32F0xx_AN4065_
[单片机]