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

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

ID:37760924

大小:16.29 KB

页数:4页

时间:2019-05-30

嵌入式实验3按键实验(中断方式)_第1页
嵌入式实验3按键实验(中断方式)_第2页
嵌入式实验3按键实验(中断方式)_第3页
嵌入式实验3按键实验(中断方式)_第4页
资源描述:

《嵌入式实验3按键实验(中断方式)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、河南机电高等专科学校《嵌入式系统开发》课程实验报告系部:电子通信工程系班级:电信1##姓名:######学号:120######实验三按键实验(中断方式)一.实验简介在实验一的基础上,使用按键控制流水灯。二.实验目的熟练使用库函数操作GPIO,掌握中断配置和中断服务程序编写方法,掌握通过全局变量在中断服务程序和主程序间通信的方法。三.实验内容实现初始化GPIO,并配置中断,在中断服务程序中通过修改全局变量,达到控制流水灯速度及方向。下载代码到目标板,查看运行结果。四.实验设备硬件部分:PC计算机(宿主机)、STM32实验板。软件部分:

2、PC机WINDOWS系统、MDKKEIL软件、ISP软件。五.实验步骤1在实验一代码的基础上,编写中断初始化代码2在主程序中声明全局变量,用于和中断服务程序通信,编写完成主程序3编写中断服务程序4编译代码,下载到实验板5.单步调试6记录实验过程,撰写实验报告六.实验结果及测试中断方式的按键式实验,是通过配置外部中断寄存器和中断嵌套(NVIC)控制器来实现按键按下控制LED灯亮灭。通过按键中断打断主函数,执行LED1取反一次。主函数初始化中断配置和LED配置,点亮LED1后一直等待中断,每中断一次,LED1取反一次。intmain(vo

3、id){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;NVI

4、C_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

5、;EXTI_InitTypeDefEXTI_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA

6、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(GP

7、IO_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

8、取反,并软件清除标志位,中断服务子程序如下:voidEXTI0_IRQHandler(void){if(EXTI_GetITStatus(EXTI_Line0)!=RESET){LED1_TOGGLE;EXTI_ClearITPendingBit(EXTI_Line0);}}七.实验总结通过这次实验,课程知识的实用性很强,因此实验就显得非常重要,刚开始做实验的时候,由于自己的理论知识基础不好,在实验过程遇到了许多的难题,也使我感到理论知识的重要性。但是我独立思考,进一步了解了stm32内部功能,最终解决问题,从而也就加深我对课本理论知

9、识的理解。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。