为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 嵌入式实验3按键实验(中断方式)

嵌入式实验3按键实验(中断方式)

2023-03-26 4页 doc 16KB 3阅读

用户头像 个人认证

is_121760

8年外贸单证以及相关的工作经验

举报
嵌入式实验3按键实验(中断方式)河南机电高等专科学校《嵌入式系统开发》课程实验报告系部:电子通信工程系班级:电信1##姓名:######学号:120######实验三按键实验(中断方式)一.实验简介在实验一的基础上,使用按键控制流水灯。二.实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。下载代码到目标板,查看运行结果。四.实验设备硬件部分:PC计算机(宿主机)、STM32实验板。软...
嵌入式实验3按键实验(中断方式)
河南机电高等专科学校《嵌入式系统开发》课程实验系部:电子通信工程系班级:电信1##姓名:######学号:120######实验三按键实验(中断方式)一.实验简介在实验一的基础上,使用按键控制流水灯。二.实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。下载代码到目标板,查看运行结果。四.实验设备硬件部分:PC计算机(宿主机)、STM32实验板。软件部分:PC机WINDOWS系统、MDKKEIL软件、ISP软件。五.实验步骤1在实验一代码的基础上,编写中断初始化代码2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序3编写中断服务程序4编译代码,下载到实验板5.单步调试6记录实验过程,撰写实验报告六.实验结果及测试中断方式的按键式实验,是通过配置外部中断寄存器和中断嵌套(NVIC)控制器来实现按键按下控制LED灯亮灭。通过按键中断打断主函数,执行LED1取反一次。主函数初始化中断配置和LED配置,点亮LED1后一直等待中断,每中断一次,LED1取反一次。intmain(void){LED_GPIO_Config();LED1_ON;CLI();SEI();EXTI_PA0_Config();while(1){}}中断嵌套控制寄存器的配置为中断嵌套分组1;抢占优先级0;响应优先级0代码如下:voidNVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitStructure;NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=EXTI0_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}外部中断按键的配置源码如下:配置PA0位中断线,并使能AFIO时钟voidEXTI_PA0_Config(void){GPIO_InitTypeDefGPIO_InitStructure;EXTI_InitTypeDefEXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);NVIC_Configuration();GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPD;GPIO_Init(GPIOA,&GPIO_InitStructure);GPIO_EXTILineConfig(GPIO_PortSourceGPIOA,GPIO_PinSource0);EXTI_InitStructure.EXTI_Line=EXTI_Line0;EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Rising;EXTI_InitStructure.EXTI_LineCmd=ENABLE;EXTI_Init(&EXTI_InitStructure);}产生中断后程序进入中断服务子程序,将LED1取反,并软件清除标志位,中断服务子程序如下:voidEXTI0_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){LED1_TOGGLE;EXTI_ClearITPendingBit(EXTI_Line0);}}七.实验通过这次实验,课程知识的实用性很强,因此实验就显得非常重要,刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我独立思考,进一步了解了stm32内部功能,最终解决问题,从而也就加深我对课本理论知识的理解。
/
本文档为【嵌入式实验3按键实验(中断方式)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索