广东海洋大学嵌入式系统课程设计.docx

上传人:h**** 文档编号:27167330 上传时间:2022-07-22 格式:DOCX 页数:10 大小:14.80KB
返回 下载 相关 举报
广东海洋大学嵌入式系统课程设计.docx_第1页
第1页 / 共10页
广东海洋大学嵌入式系统课程设计.docx_第2页
第2页 / 共10页
点击查看更多>>
资源描述

《广东海洋大学嵌入式系统课程设计.docx》由会员分享,可在线阅读,更多相关《广东海洋大学嵌入式系统课程设计.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、广东海洋大学嵌入式系统课程设计 嵌入式系统设计报告学生姓名 Adao (学号) 所在学院数学与计算机学院 所在班级计科1141 指导教师 成绩 目录 1.课程设计目的 (2) 2.系统分析与设计 (2) 3.系统结构图 (2) 4.实现过程 (3) 5.实验效果 (5) 6.代码分析 (6) 7.系统测试出现的问题和解决的方案 (7) 8.系统优缺点 (7) 9.心得体会 (8) 参考文献 (8) 双按键控制流水灯系统开发 1.课程设计目的: 本次课程设计目的主要是对之前所学习的STM32的某个实验进行更深入的学习与了解,弄懂引脚,端口等相关的配置,对实验原理和具体实现有一定的理解,能做到自己

2、通过原理图和使用库函数等把功能实现出来。我选择的是EXTI-外部中断实验并加以整合,具有一定实用功能的系统,可以对外提供服务。 2.系统分析与设计: 本课程设计所定义的系统主要功能为,通过两个按键KEY1(PA0)、KEY2(PC13)可以实现对流水灯进行同步控制,即一个开关控制产生的灯的状态可以被另一个开关去改变,按键控制需要对两个按键的端口,引脚等进行相关配置,并在两个引脚的中断服务程序中完成对流水灯状态同步控制的操作。本还想通过使用SysTick(系统滴答定时器)功能对流水灯进行精确定时,但由于时间比较匆促,最终没有实现。 3.系统结构图: 图3-1 4.实现过程: 1、GPIO的输入模

3、式有上拉输入模式、下拉输入模式、浮空输入模式和模拟输入模式。GPIO 中的每个引脚可以通过配置端口配置寄存器来配置它的模式。每个引脚的模式由寄存器的4个位控制。 上拉/下拉输入模式:1000 浮空输入模式:0100 模拟输入模式:0000 2、STM32的所有GPIO都可以用作外部中断源的输入端。STM32的中断由中断控制器NVIC 处理。STM32的中断向量具有两个属性,一个为抢占属性,另一个为响应属性,其属性编号越小,表面它的优先级别越高。抢占属性会出现嵌套中断。 3、编写NVIC_Configuration()函数配置NVIC控制器的函数。 static void NVIC_Config

4、uration(uint8_t IRQ) NVIC_InitTypeDef NVIC_InitStructure; /将NVIC中断优先级分组设置为第1组 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); /* 配置中断源 */ NVIC_InitStructure.NVIC_IRQChannel = IRQ;/设置中断线 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/设置抢占优先级 NVIC_InitStructure.NVIC_IRQChannelSubPriority =

5、0;/设置响应优先级 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); /对NVIC中断控制器进行初始化 4、调用GPIO_EXTILineConfig()函数把GPIOA、Pin0和GDIOC、PIN13设置为EXTI输入线。 GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource13); 5、填写EXTI的

6、初始化结构体,然后调用EXTI_Init()把EXTI初始化结构体的参数写入寄存器。编写EXTI_PA0_Config()函数完成各种需要的初始化。 void EXTI_Pxy_Config(void) GPIO_InitTypeDef GPIO_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* config the extiline clock and AFIO clock */ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO,ENABLE); /*

7、 config the NVIC */ NVIC_Configuration(EXTI0_IRQn); /* EXTI line gpio config*/ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; / 上拉模式 GPIO_Init(GPIOA, &GPIO_InitStructure); /* EXTI line mode config */ GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);

8、 EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; /下降沿中断 EXTI_InitStructure.EXTI_LineCmd = ENABLE; EXTI_Init(&EXTI_InitStructure); 6、在启动文件中找到对应的中断服务函数的名字,然后编写中断函数。 void EXTI0_IRQHandler(void) if(EXT

9、I_GetITStatus(EXTI_Line0) != RESET) / 确保是否产生了EXIT LINE中断 if(_flag1 = 1) _flag1=0; else _flag1=1; EXTI_ClearITPendingBit(EXTI_Line0); /清除中断标志 void EXTI15_10_IRQHandler(void) if(EXTI_GetITStatus(EXTI_Line13) != RESET) /确保是否产生了EXIT LINE中断? if(_flag2 = 1) _flag2=0; else _flag2=1; EXTI_ClearITPendingBit(

10、EXTI_Line13); /清除中断标志 5.实验效果 图5-1 图5-2 6.代码分析: 7.系统测试出现的问题和解决的方案: 问题一是,中断服务程序忘记编写,整合的过程中头文件没有定义相关的函数,external全局变量编写代码过程中出现函数implicit declaration of function EXTI_PC13_Config()is invalid in C99的警告。原因是所引入的头文件中缺少对相应函数的声明,在所包含的头文件中添加相关函数的声明即可。一个源文件需要引用另一个源文件中定义的全局变量需要在自身源文件的开头使用external 声明。 问题二是,在编写KEY2

11、(PC13)的中断服务程序后,发现按下KEY2时,灯并没有熄灭,经检查,原来是void EXTI_PC13_Config(void)里的static void NVIC_Configuration()函数配置的NVIC_InitStructure.NVIC_IRQChannel还是KEY1的中断源,最后我选择不再编写两个static void NVIC_Configuration()函数,只写一个,通传参的不同来区别是到底是KEY1的还是KEY2的中断源请求,从而作出相应的响应。 8.系统优缺点: 本系统的优点是在单按键的基础上做了一点小小的创新,可以实现双按键开关同步控制,使得不同位置的两个

12、开关都可以控制流水灯的状态。缺点是while(1)里需要判断标志位的改变与否,效率稍微降低了一点。 9.心得体会: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着嵌入式技术在日常生活中的地位日益凸显,这对我们这些学习有关网络以及计算机专业的学生来说既是一种挑战,又是一个难得的机会。通过这次嵌入式的课程设计让我们初步了解了STM32库开发的方便性和强大性,掌握了一些编程能力,与此同时,我还学到了一些专业知识之外的东西,激发了我浓厚的兴趣,这对将来的学习是很有帮助的。 这次课程设计不仅考察了我们对课堂上所学

13、专业知识的理解程度,也锻炼了我们的动手能力。提高了我们独立思考文理,解决问题的能力。总体上看,我觉得这次课程设计是我自身的知识丰富了不少,但同时也发现了自己的不足之处。例如在动手方面,和知识融合方面,不能与实践相结合。软件操作不够熟练,不能灵活运用。是我了解要先学好理论知识才能很好地与实践相结合,才能熟练地运用到生活中,希望以后的学习生活中在这些方面能够做到更好。 参考文献 1刘火良,杨森.STM32库开发实战指南.北京:机械工业出版社,2022.5 2贾智平,张瑞华.嵌入式系统原理与接口技术M.北京:清华大学出版社,2022 3吴明晖. 基于ARM的嵌入式系统开发与应用M.北京:人民邮电出版社,2022 4路莹,彭健钧.嵌入式系统开发技术与应用.北京:清华大学出版社,2022

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 策划方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁