第28讲外部中断实验-exti第27讲外部中断实验-m3.pptVIP

  • 18
  • 0
  • 约3.12千字
  • 约 16页
  • 2021-03-22 发布于北京
  • 举报

第28讲外部中断实验-exti第27讲外部中断实验-m3.ppt

LOGO 淘宝店铺: 技术论坛: 《手把手教你学STM32》 主讲人 :正点原子团队 硬件平台:正点原子STM32开发板 版权所有:广州市星翼电子科技有限公司 淘宝店铺: 技术论坛: 开源电子网 公众平台:“正点原子” 官方网站: 联系电话ALIENTEK 《手把手教你学STM32》 外部中断实验 STM32F1xx 开发板 (正点原子) STM32F4xx 开发板 (正点原子) 适用平台 淘宝店铺: 技术论坛: 外部中断 淘宝店铺: 技术论坛: 参考资料: 战舰/精英STM32F1开发板 《STM32F1开发指南-库函数版本》-第10章 外部中断实验 miniSTM32F1开发板 《STM32不完全手册-库函数版本》 -第9章 外部中断实验 STM32F1xx官方资料: 《STM32中文参考手册V10》-第9章 中断和事件 目录 外部中断概述 1 外部中断库函数设置 2 手把手用外部中断写按键实验 3 淘宝店铺: 技术论坛: 外部中断概述 淘宝店铺: 技术论坛: STM32的每个IO都可以作为外部中断输入。 STM32的中断控制器支持19个外部中断/事件请求: 线0~15:对应外部IO口的输入中断。 线16:连接到PVD输出。 线17:连接到RTC闹钟事件。 线18:连接到USB唤醒事件。 每个外部中断线可以独立的配置触发方式(上升沿,下降沿或者双边沿触发),触发/屏蔽,专用的状态位。 从上面可以看出,STM32供IO使用的中断线只有16个,但是STM32F10x系列的IO口多达上百个,STM32F103ZET6(112), STM32F103RCT6(51),那么中断线怎么跟io口对应呢? 外部中断概述 淘宝店铺: 技术论坛: GPIOx.0映射到EXTI0 GPIOx.1映射到EXTI1 … GPIOx.15映射到EXTI15 外部中断概述 淘宝店铺: 技术论坛: 对于每个中断线,我们可以设置相应的触发方式(上升沿触发,下降沿触发,边沿触发)以及使能。 外部中断概述 淘宝店铺: 技术论坛: 是不是16个中断线就可以分配16个中断服务函数呢? IO口外部中断在中断向量表中只分配了7个中断向量,也就是 只能使用7个中断服务函数 从表中可以看出,外部中断线5~9分配一个中断向量,共用一个服务函数 外部中断线10~15分配一个中断向量,共用一个中断服务函数。 外部中断概述 淘宝店铺: 技术论坛: EXTI0_IRQHandler EXTI1_IRQHandler EXTI2_IRQHandler EXTI3_IRQHandler EXTI4_IRQHandler EXTI9_5_IRQHandler EXTI15_10_IRQHandler 中断服务函数列表: 2. 外部中断常用库函数 淘宝店铺: 技术论坛: 外部中断常用库函数 ①void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource); //设置IO口与中断线的映射关系 exp: GPIO_EXTILineConfig(GPIO_PortSourceGPIOE,GPIO_PinSource2); ②void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); //初始化中断线:触发方式等 ③ITStatus EXTI_GetITStatus(uint32_t EXTI_Line); //判断中断线中断状态,是否发生 ④void EXTI_ClearITPendingBit(uint32_t EXTI_Line); //清除中断线上的中断标志位 2. 外部中断常用库函数 淘宝店铺: 技术论坛: EXTI_Init函数 void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct); typedef struct { uint32_t EXTI_Line;

文档评论(0)

1亿VIP精品文档

相关文档