




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、班级:计算机科学与技术姓名:戴国庆学号:20132430104实验五 中断驱动实验一. 实验目的了解STM32微控制器的中断特性,熟悉GPIO的复用功能和中断特点,掌握使用中断驱动方式检测外设状态以及编写中断服务程序的方法。 二. 实验内容编写NVIC初始化和EXTI初始化函数,完成中断驱动方式的按键检测程序、以及中断服务程序,使用软件模拟运行和调试程序。配合LED驱动程序,使用硬件仿真器下载、运行和调试程序,实现按下KEY1按键,中断服务程序控制对应LED1灯亮起一段时间后灭;按下KEY2键,LED2灯灯亮起一段时间后灭。KEY1和KEY2设置不同的抢占优先级实现中断嵌套。三实验要求1.结合
2、按键和LED等显示效果,体会中断的功能和应用。2.编写实验报告:写出详细的项目开发过程,上机调试过程(软件仿真和硬件仿真)。写出实验总结以及实验的心得体会。四实验步骤按键中断:1.根据按键状态控制LED灯亮灭按键KEY有按下来,产生中断请求2.KEY在目标板上的连接PA0、PC13、依次连接2个KEY1、KEY2按钮按下时,相应GPIO引脚输入低电平(0),否则输入高电平(1)3.程序的功能是按下按钮KEY1对应LED1亮一段时间,然后熄灭LED1接PB0,KEY1接PA0具体实现:1.时钟配置NVIC在内核里,使用内核时钟,在启动代码里有SystemInit()函数,使系统时钟为72MHZ,
3、需要用户配置的是GPIO的时钟2.NVIC初始化配置首先,选择优先级组号(即04共5种形式)NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);/ 本例中,只有1个中断源,选用1组优先级配置其次,调用misc.c文件的NVIC初始化函数void NVIC_Init( NVIC_InitTypeDef * NVIC_InitStruct )参数NVIC_InitStruct是指向NVIC_InitTypeDef结构的指针typedef struct uint8_t NVIC_IRQChannel; uint8_t NVIC_IRQChannelPreem
4、ptionPriority; uint8_t NVIC_IRQChannelSubPriority; FunctionalState NVIC_IRQChannelCmd; NVIC_InitTypeDef;3.配置GPIO端口工作方式GPIO配置 PB0驱动LED1灯,其工作模式配置为推免输出代码:/*定义一个GPIO_InitTypeDef类型的结构体*/GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd (RCC_APB2Periph_GPIOB|, ENABLE); /*选择要控制的GPIOB引脚*/GPIO_InitS
5、tructure.GPIO_Pin = GPIO_Pin_0; /*设置引脚模式为通用推挽输出*/GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /*设置引脚速率为50MHz */ GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /*调用库函数,初始化GPIOB0*/GPIO_Init(GPIOB, &GPIO_InitStructure);KEY1接PA0, PA0引脚配置为上拉输入模式GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2Peri
6、phClockCmd (RCC_APB2Periph_GPIOA|, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; GPIO_Init(GPIOA, &GPIO_InitStructure);4.EXTI初始化配置调用stm32f10x_exti.c中的EXTI初始化配置void EXTI_Init( EXTI_InitTypeDef * EXTI_InitStruct )参数EXTI_InitStruct是指向EXTI_InitTypeD
7、ef结构的指针typedef struct uint32_t EXTI_Line; /* 指明EXTI线 */ EXTIMode_TypeDef EXTI_Mode; /* 指明工作模式 */ EXTITrigger_TypeDef EXTI_Trigger; /* 指明有效边沿 */ FunctionalState EXTI_LineCmd; /* ENABLE或DISABLE */EXTI_InitTypeDef;5.配置GPIO和EXTI映射关系首先,对进行中断请求的GPIO引脚进行初始化配置例如设置按键引脚为下拉输入或浮空输入模式也可以在配置NVIC之前进行其次,调用stm32f10x
8、_gpio.c的EXTI线配置函数void GPIO_EXTILineConfig ( uint8_t GPIO_PortSource, uint8_t GPIO_PinSource )GPIO_PortSource选择作为EXTI线的GPIO端口形如GPIO_PortSourceGPIOx(x是AG)GPIO_PinSource指明配置的EXTI线(GPIO引脚)形如GPIO_PinSourcex(x是015)本例代码: GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);6.中断服务程序stm32f10x_it.cMDK 为
9、方便用户编写中断服务程序, 特别提供了文件 stm3210x_it.c( 以及配套的头文件 stm3210x_it.h)。这两个文件保存于 MDK 文件夹( Keil_v5) 的软件包( Pack) 中,具体是在 STM32 标准外设驱动程序库的模板文件夹( templates) 里。 或者也可以在 MDK文件夹下搜索出它们。将文件 stm3210x_it.c 和 stm3210x_it.h, 复制到用户应用程序文件夹( user) 下, 并去掉其只读属性, 并添加到项目中。打开 MDK 提供的中断服务程序文件 stm3210x_it.c, 会发现已经编辑了 CM3 异常处理程序( 函数) 的框架, 处理本身或为空或为死循环。 最后, 也给出了一个内容为空的外设中断服务程序( 函数) 的框架, 等待用户编写。五部分代码及其实现 六实验总结通过实验我了解了STM32微控制器的中断特性,stm32微控制器可以在NVIC中设置中断优先级。中断优先级分为抢占式优先级和响应式优先级,本实验只涉及到了抢占式优先级。高优先级中断可以在低优先级中断过程中响应,反之不能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海南五年级语文数学试卷
- 汉中五年级数学试卷
- 2025-2030中国石材切割机行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国桦木制品行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国景观材料行业市场发展分析及发展趋势与投资前景预测报告
- 2025-2030中国手绘鞋行业发展趋势与投资战略研究报告
- 三明市第十一中学第一招聘教师考试真题2024
- 和县小升初数学试卷
- 贵州2024高考数学试卷
- 2024年南昌市产业投资集团有限公司招聘笔试真题
- DB11-T 1192-2025 工作场所防暑降温技术规范
- 2025年社区工作者招聘考试(公共基础知识)经典试题及答案
- 2025年精益生产管理考试试题及答案
- 历年造价员考试试题及答案
- 2025年北京高考地理真题及答案
- 小学美术大单元教学设计与实施研究
- 山地生态治理修复项目可行性研究报告
- 2025广西公需科目真题续集(附答案)
- 小儿喘息性肺炎的护理
- 新能源产业中液流电池储能电站项目的成功要素解析
- 2877管理学基础1-15套试题答案 国开
评论
0/150
提交评论