




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EmbeddedSystemDevelopment 嵌入式系统与应用 1 第9章STM32外部中断设计 9 1GPIO键盘设计9 2GPIO外部中断EXTI设计 2 9 1GPIO键盘设计 每个GPIO引脚都可配置为8种模式 GPIO端口如何进行键盘设计 下面两种办法效果一样 一是采用上拉输入模式 按键在没按下的时候 默认为高电平 PE5 key1PE6 key2二是直接采用浮空输入模式 在芯片外部接上拉电阻 按键原理图 3 实现LED反转 main 函数 intmain void configtheled LED GPIO Config LED1 ON configkey Key GPIO Config while 1 if Key Scan GPIOE GPIO Pin 5 KEY ON LED1反转 GPIO WriteBit GPIOC GPIO Pin 3 BitAction 1 GPIO ReadOutputDataBit GPIOC GPIO Pin 3 读取PC3的当前输出电平 当前状态反相后写入到PC3 4 实现LED反转 main 函数 1 关于Led灯的代码 把前面写的led c和led h文件复制一份添加到工程就可以了 2 启动文件调用了SystemInit 将系统时钟SYSCLK配置为72MHz 3 接着进入到main函数 第一步先调用了在LED灯例程中编写的LED GPIO Config 配置LED用到的I O 4 再使用LED1 ON 宏 把LED设置为点亮状态 5 配置按键用到的I O口Key GPIO Config函数 6 按键检测函数 按键时调用GPIO WriteBit函数 实现灯反转 5 设计按键函数头文件bsp key h ifndef KEY H 条件编译 define KEY H include stm32f10 x h defineKEY ON0 按键按下标志 defineKEY OFF1 无按键标志voidKey GPIO Config void uint8 tKey Scan GPIO TypeDef GPIOx u16GPIO Pin endif 6 设计按键函数Key GPIO Config include bsp key h voidKey GPIO Config void GPIO InitTypeDefGPIO InitStructure 开启按键端口GPIOE PE5 的时钟 RCC APB2PeriphClockCmd RCC APB2Periph GPIOE ENABLE GPIO InitStructure GPIO Pin GPIO Pin 5 GPIO InitStructure GPIO Mode GPIO Mode IPU GPIO Init GPIOE 7 按键检测函数Key Scan 输入 GPIOx GPIO Pin 待读取的端口 引脚 输出 KEY OFF 没按下按键 KEY ON 按下按键 u8Key Scan GPIO TypeDef GPIOx u16GPIO Pin 检测是否有按键按下 if GPIO ReadInputDataBit GPIOx GPIO Pin KEY ON Delay 10000 延时消抖if GPIO ReadInputDataBit GPIOx GPIO Pin KEY ON while GPIO ReadInputDataBit GPIOx GPIO Pin KEY ON returnKEY ON 等待按键释放elsereturnKEY OFF elsereturnKEY OFF 8 检测是否有按键按下 库函数GPIO ReadInputDataBit 端口号 引脚号 返回引脚数据 0为低电平 KEY ON 可能有按键按下 调用延时函数消抖 否则返回1为高电平 KEY OFF 表示按键没有被按下 延时之后再次读取该引脚数据 若依然为低电平 表明确实有按键被按下了 否则返回KEY OFF 表示没按键 while循环调用GPIO ReadInputDataBit 等待按键释放 条件变为假退出循环 返回表示按键被按下的标志KEY ON 同理 通过输入不同的实参 来检测其它按键的引脚 这就是库的魅力 9 作业 课下任务 1 进一步熟悉GPIO 掌握GPIO设计 2 掌握GPIO键盘实验 实验报告 10 9 2GPIO外部中断EXTI设计 EXTI Externalinterrupt 通过GPIO检测输入脉冲 引起中断事件 打断原来的代码执行流程 进入到中断服务函数 处理完后 再返回到中断之前的代码中执行 STM32的所有GPIO都可以用作外部中断源 可把按键轮询检测改为由中断来处理 大大提高软件执行的效率 Cortex内核具有强大的异常响应系统 能够打断当前代码执行流程的事件分为异常exception和中断interrupt 用一个异常向量表管理起来 编号为0 15的称为内核异常 而16以上的则称为外部中断 STM32向量表 优先级从 3至6的中断向量称为系统异常 优先级为负的不能设置优先级 如复位Reset 不可屏蔽中断NMI 硬错误Hardfault 从优先级7开始的称为外部中断 优先级可自行设置 11 STM32中断向量表 12 STM32中断向量表 详见参考手册 13 GPIO外部中断EXTI 中断控制器NVIC属于Cortex内核的器件 能配置16种中断向量 超过16个中断向量时 必然有2个以上的中断向量是使用相同的中断种类 注意 相同种类的中断不能嵌套 GPIO与EXTI的连接方式 PAx PGx端口的中断事件都连接到了EXTIx 可以分时复用 可以配置为下降沿中断 上升沿中断和上升下降沿中断这三种模式 EXTI最普通的应用就是接上一个按键 设置为下降沿触发 用中断来检测按键 14 外部中断0与NVIC的关系 15 EXTI寄存器 EXTI寄存器结构 typedefstruct vu32IMR vu32EMR vu32RTSR vu32FTSR vu32SWIER vu32PR EXTI TypeDef 16 EXTI库函数 17 NVIC寄存器 18 NVIC库函数 19 NVIC配置 misc库中NVIC Init 函数对NVIC初始化 用到NVIC InitTypeDef结构体 其中四个成员 NVIC IRQChannel参数来选择将要配置的中断向量 NVIC IRQChannelCmd参数来进行使能 ENABLE 或关闭 DISABLE 该中断 NVIC IRQChannelPreemptionPriority成员要配置中断向量的抢占优先级 NVIC IRQChannelSubPriority需要配置中断向量的响应优先级 NVIC只可配置16种中断向量的优先级 编号越小 优先级别越高 抢占优先级 是指打断其它中断 会出现嵌套中断 响应优先级 先处理响应优先级高的中断 20 中断检测按键实验 硬件连接 PE5 key1 PE6 key2 key1按下时 进入线中断处理函数 LED1状态取反 配置工程环境 除使用GPIO和RCC片上外设 还要使用exti片上外设 stm32f10 x exti c包含了支持exti配置和操作的函数 misc c文件则包含了NVIC的配置函数 本实验中还会在stm32f10 x it c中编写中断服务函数 21 Main函数 配置好LED用到的I O后 调用LED1 点亮一盏LED灯 配置中断 等待中断发生 intmain void configtheled LED GPIO Config LED1 ON extilineconfig EXTI PE5 Config waitinterrupt while 1 22 配置外部中断exti c EXTI PE5 Config 函数 配置PE5为线中断口 并设置中断优先级 主要步骤 1 使能EXTIx线的时钟和第二功能AFIO时钟2 配置EXTIx线的中断优先级3 配置EXTI中断线I O4 选定要配置为EXTI的I O口线和I O口的工作模式5 EXTI中断线工作模式配置 23 EXTI PE5 Config 函数 8 voidEXTI PE5 Config void 9 10 GPIO InitTypeDefGPIO InitStructure 11 EXTI InitTypeDefEXTI InitStructure 13 configtheextiline PE5 clockandAFIOclock 14 RCC APB2PeriphClockCmd RCC APB2Periph GPIOE RCC APB2Periph AFIO ENABLE 16 configtheNVIC PE5 17 NVIC Configuration NVIC初始化配置19 EXTIlinegpioconfig PE5 20 GPIO InitStructure GPIO Pin GPIO Pin 5 21 GPIO InitStructure GPIO Mode GPIO Mode IPD 上拉输入 24 EXTI PE5 Config 函数 续 22 GPIO Init GPIOE 31 25 GPIO端口的复用功能AFIO AFIO alternate functionI O GPIO除了用作普通的输入输出 主功能 还可以作为片上外设的复用输入输出 如串口 ADC 这些就是复用功能 GPIO还有重映射功能 重映射功能是指把原来属于A引脚的默认复用功能 转移到了B引脚进行使用 当然B引脚具有这个重映射功能 当把GPIO用作EXTI外部中断或使用重映射功能的时候 必须开启AFIO时钟 代码的第14行 开启了AFIO的时钟 26 NVIC初始化配置 EXTI PE5 Config 调用了NVIC Configuration 函数来配置NVIC控制器 8 staticvoidNVIC Configuration void 9 10 NVIC InitTypeDefNVIC InitStructure 12 Configureonebitforpreemptionpriority 13 NVIC PriorityGroupConfig NVIC PriorityGroup 1 15 配置P A B C D E 5为中断源 16 NVIC InitStructure NVIC IRQChannel EXTI9 5 IRQn 17 NVIC InitStructure NVIC IRQChannelPreemptionPriority 0 18 NVIC InitStructure NVIC IRQChannelSubPriority 0 19 NVIC InitStructure NVIC IRQChannelCmd ENABLE 20 NVIC Init 向寄存器写入参数21 把NVIC中断优先级分组设置为第1组 要配置的为EXTI第5 9线的中断向量 抢占优先级和响应优先级 设为最高 27 编写中断服务函数 PE5连接到内部的EXTI5 GPIO配置为上拉输入 工作在下降沿中断 在外围电路上我们将PE5接到了key1上 PE5始终为高 当按键按下时 下降沿跳变 EXTI5会捕捉到这一跳变 并产生相应的中断 中断服务程序在stm32f10 x it c中实现 专门用来存放中断服务函数 中断服务函数的名字必须要跟启动文件startup stm32f10 x hd s中的中断向量表定义一致 DCDEXTI9 5 IRQHandler EXTILine9 5EXTI9 EXTI5中断向量的服务函数名在stm32f10 x it c中加入EXTI9 5 IRQHandler 函数 28 EXTI9 5 IRQHandler 函数 I O线中断 中断线为PE5 voidEXTI9 5 IRQHandler void if EXTI GetITStatus EXTI Line5 RESET 确保是否产生了EXTILine中断 LED1取反GPIO WriteBit GPIOC GPIO Pin 3 Bit
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030反刍动物甲烷减排饲料研发进展与碳交易潜力报告
- 2025-2030动力锂电池回收利用技术路线与商业模式创新报告
- 2025-2030动力电池正极材料技术路线比较与投资价值报告
- 2025-2030动力电池回收预处理技术经济性比较分析报告
- 2025-2030动力电池回收网络布局优化与经济效益分析报告
- 2025-2030动力电池回收网点布局密度与运营效率评估报告
- 2025-2030动力电池回收利用技术路线与梯次利用商业模式报告
- 2025-2030动力电池回收利用产业链布局与商业模式分析报告
- 五年级语文月考试卷与重点解析(苏教版)
- 环境卫生管理中的信息公开机制-洞察及研究
- 国开电大《组织行为学》形考任务1-4
- 施工安全生产风险分级管控和隐患排查治理双重预防机制建设实施方案
- 【MOOC】化学与社会-大连理工大学 中国大学慕课MOOC答案
- 精细化工技术-大学专业介绍
- 餐饮财务问题的研究报告
- 慢性疾病运动干预中心服务要求(征求意见稿)
- 林同炎与美洲银行大厦
- (正式版)SH∕T 3548-2024 石油化工涂料防腐蚀工程施工及验收规范
- 人教版八年级历史上册 第一、二单元 单元测试卷( 2024年秋)
- 二次抵押贷款合同
- DZ/T 0462.5-2023 矿产资源“三率”指标要求 第5部分:金、银、铌、钽、锂、锆、锶、稀土、锗(正式版)
评论
0/150
提交评论