




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外部中断GD32E230开发标准教程第十章01实验内容通过学习EXTI功能框图、EXTI的相关寄存器和固件库函数,以及系统配置SYSCFG的相关寄存器和固件库函数,基于EXTI,实现由GD32E2杏仁派开发板上的KEY1、KEY2和KEY3按键控制LED1和LED2的亮灭,其中KEY1用于控制LED1的状态翻转,KEY2用于控制LED2的状态翻转,KEY3用于控制LED1和LED2的状态同时翻转。实验内容02实验原理EXTI功能框图EXTI管理了21个中断/事件线,每个中断/事件线都对应一个边沿检测电路,可以对输入线的上升沿、下降沿或上升/下降沿进行检测,每个中断/事件线可以通过寄存器进行单独配置,既可以产生中断触发,也可以产生事件触发。实验原理图10-1所示是EXTI的功能框图,下面介绍各主要功能模块。实验原理EXTI输入线表10-1列出了EXTI所有输入线的输入源。实验原理通过配置上升沿触发使能寄存器(EXTIRTEN)和下降沿触发使能寄存器(EXTIFTEN),可以实现输入信号的上升沿检测、下降沿检测或上升/下降沿同时检测。EXTI_RTEN的各个位与EXTI输入线的编号一一对应。边沿检测电路实验原理软件中断事件寄存器(EXTI_SWIEV)的输出和边沿检测电路的输出通过或运算输出到下一级,因此,无论EXTISWIEV输出高电平,还是边沿检测电路输出高电平,下一级都会输出高电平。虽然通过EXTI输入线产生触发源,但是使用软件中断触发的设计方法能够让GD32E23x系列微控制器的应用变得更加灵活。软件触发实验原理中断输出EXTI的最后一个环节是输出,既可以中断输出,也可以事件输出。先简单介绍中断和事件,中断和事件的产生源可以相同,两者的目的都是执行某一具体任务,如启动A/D转换或触发DMA数据传输。中断需要CPU的参与,当产生中断时,会执行对应的中断服务函数,具体的任务在中断服务函数中执行;事件是通过脉冲发生器产生一个脉冲,该脉冲直接通过硬件执行具体的任务,不需要CPU的参与。实验原理因为事件触发提供了一个完全由硬件自动完成而不需要CPU参与的方式,使用事件触发,诸如A/D转换或DMA数据传输任务,不需要软件的参与,降低了CPU的负荷,节省了中断资源,提高了响应速度。但是,中断正是因为有CPU的参与,才可以对某一具体任务进行调整,例如,A/D采样通道需要从第1通道切换到第7通道,就必须在中断服务函数中实现。实验原理事件输出软件中断事件寄存器(EXTI_SWIEV)的输出和边沿检测电路的输出经过或运算后,产生的事件经过事件屏蔽控制后输出至唤醒单元。因此,如果需要屏蔽某EXTI输入线上的事件,可以向事件使能寄存器(EXTI_EVEN)的对应位写入0;如果需要开放某EXTI输入线上的事件,可以向EXTIEVEN的对应位写入1。实验原理EXTI_INTEN的结构、偏移地址和复位值如图10-2所示。实验原理EXTI_EVEN的结构、偏移地址和复位值如图10-3所示。实验原理EXTI_RTEN的结构、偏移地址和复位值如图10-4所示。实验原理EXTI_FTEN的结构、偏移地址和复位值如图10-5所示。实验原理EXTI_SWIEV的结构、偏移地址和复位值如图10-6所示。实验原理EXTI_PD的结构、偏移地址和复位值如图10-7所示。实验原理EXTI部分固件库函数本实验涉及的EXTI固件库函数包括exti_init、exti_interrupt_flag_get和exti_interrupt_flagclear。这些函数在gd32e230exti.h文件中声明,在gd32e230exti.c文件中实现。实验原理SYSCFG_EXTISS0的结构、偏移地址和复位值如图10-8所示。实验原理SYSCFG_EXTISS1的结构、偏移地址和复位值如图10-9所示。实验原理syscfg_exti_line_config函数的功能是配置GPIO引脚作为EXTI。通过配置SYSCFG
EXTISSx(x=0,…,3),从而选择GPIO的某一引脚作为外部中断线。具体描述如表10-15所示。实验原理外部中断实验的程序架构如图10-10所示。实验原理03实验步骤步骤1:复制并编译原始工程;步骤2:添加EXTI文件对;步骤3:完善EXTI.h文件;实验步骤步骤4:完善EXTI.c文件;步骤5:完善外部中断实验应用层;步骤6:编译及下载验证。实验步骤04本章任务基于GD32E2杏仁派开发板编写程序,通过按键中断实现LED编码计数功能。假设LED熄灭为0,点亮为1,初始状态为LED1和LED2均熄灭(00),第二状态为LED1熄灭、LED2点亮(01),第三状态为LED1点亮、LED2熄灭(10),第四状态为LED1点亮、LED2点亮(11)。按下KEY1按键,状态递增直至第四状态;按下KEY2按键,状态复位到初始状态;按下KEY3按键,状态递减直至初始状态。本章任务任务提示:(1)定义一个变量表示计数标志,在EXTI0(对应KEY1)和EXTI7(对应KEY3)中断服务函数中设置该标志为1。然后,参考LEDFlicker函数编写LEDCounter函数,在该函数中先判断计数标志,如果为1,则开始进行递增或递减编码。本章任务任务提示:(2)分别单独观察LED1和LED2的状态变化情况:在递增编码时,LED1每隔2s切换一次状态;在递减编码时,LED1第一次切换状态需要1s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传媒公司协议合同范本
- 制作简易合同范本
- 农户贷款保证合同范本
- 农村住宅设计合同范本
- 上海植物租摆合同范本
- 公积金租房合同范本
- 五人合伙合同范本
- 二手公寓房购买合同范本
- 正规合同范本买卖
- 仓库货品保管合同范本
- GB/T 3452.2-2007液压气动用O形橡胶密封圈第2部分:外观质量检验规范
- GB/T 30797-2014食品用洗涤剂试验方法总砷的测定
- GB/T 20057-2012滚动轴承圆柱滚子轴承平挡圈和套圈无挡边端倒角尺寸
- GB/T 19808-2005塑料管材和管件公称外径大于或等于90mm的聚乙烯电熔组件的拉伸剥离试验
- GB/T 12771-2019流体输送用不锈钢焊接钢管
- 工程验收及移交管理方案
- 班组建设工作体系课件
- 图片编辑概述课件
- 第章交通调查与数据分析课件
- 2023年岳阳职业技术学院单招职业技能考试笔试题库及答案解析
- 北师大版八年级数学上册《认识无理数(第2课时)》参考课件2
评论
0/150
提交评论