嵌入式系统流水灯,按键,定时器实验报告.docxVIP

嵌入式系统流水灯,按键,定时器实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统应用 实验报告 姓 名: 学 号: 学 院: 专 业: 班 级: 指导教师: 实验 1、流水灯实验 实验要求 编程控制实验板上 LED 灯轮流点亮、熄灭,中间间隔一定时间。 原理分析 实验主要考察对 STM32F10X 系列单片机 GPIO 的输出操作。 参阅数据手册可知,通过软件编程, GPIO 可以配置成以下几种模式: ◇输入浮空 ◇输入上拉 ◇输入下拉 ◇模拟输入 ◇开漏输出 ◇推挽式输出 ◇推挽式复用功能 ◇开漏式复用功能 根据实验要求,应该首先将 GPIO配置为推挽输出模式。 由原理图可知,单片机 GPIO输出信号经过 74HC244缓冲器,连接 LED灯。 由于 74HC244的 OE1和 OE2都接地,为相同电平,故 A端电平与 Y端电平相同且 LED灯共阳,所以,如果要点亮 LED,GPIO应输出低电平。反之, LED灯熄灭。 程序分析 软件方面,在程序启动时,调用 SystemInit()函数 (见附录 1),对系统时钟 等关键部分进行初始化,然后再对 GPIO 进行配置。 GPIO 配置函数为 SZ_STM32_LEDInit() (见附录 2),函数中首先使能 GPIO 时钟: RCC_APB2PeriphClockCmd(GPIO_CLK[Led], ENABLE); 然后配置 GPIO 输入输出模式: GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 再配置 GPIO 端口翻转速度: GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 最后将配置好的参数写入寄存器,初始化完成: GPIO_Init(GPIO_PORT[Led], GPIO_InitStructure) 。 初始化完成后,程序循环点亮一个 LED并熄灭其他 LED,中间通过 Delay() 函数进行延时,达到流水灯的效果 (程序完整代码见附录 3)。 实验程序流程图如下: 硬件方面,根据实验指南,将实验板做如下连接: 实验结果 实验二、按键实验 实验要求 利用 STM32读取外部按键状态, 按键按下一次产生一次外部中断在中断处理 函数中使按键所对应的灯亮起。 原理分析 实验主要考察对 STM32F10X 系列单片机 GPIO 外部中断功能的使用。 STM32F107VCT 一共有 5 组 GPIO,分别是 PA[15:0]、PB[15:0] 、PC[15:0]、 PD[15:0] 、 PE[15:0]。 STM32 的所有 GPIO 都可以作为中断输入源,单片机通过 复用的方式使其对处理器来说来自 GPIO 的一共有 16 个中断 Px[15:0] 。具体实 现是 PA[0]、PB[0]、PC[0]、PD[0]和 PE[0]共享一个 GPIO 中断; PA[1]、 PB[1] 、 PC[1]、PD[1]和 PE[1]共享一个 GPIO 中断;??PA[15]、PB[15]、PC[15]、PD[15] 和 PE[15] 共享一个 GPIO 中断。以下图片为以 EXTI0 为例的外部中断 /事件线路 映像: 要产生中断,必须先配置好并使能中断线。根据需要的边沿检测设置 2 个触 发寄存器,同时在中断屏蔽寄存器的相应位写‘ 1允许中断请求。当外部中断 线上发生了期待的边沿时, 将产生一个中断请求, 对应的挂起位也随之被置 ‘1。 在挂起寄存器的对应位写 1,将清除该中断请求。 要把 IO 口作为外部中断输入,有以下几个步骤: 初始化 IO 口为输入。这一步设置要作为外部中断输入的 IO 口的状态, 可以设置为上拉 / 下拉输入,也可以设置为浮空输入,但浮空的时候外部一定要 带上拉,或者下拉电阻。否则可能导致中断不停的触发。在干扰较大的地方,就 算使用了上拉 / 下拉,也建议使用外部上拉 / 下拉电阻,这样可以一定程度防止外 部干扰带来的影响。 开启 IO 口复用时钟,设置 IO 口与中断线的映射关系。 STM32的 IO 口与 中断线的对应关系需要配置外部中断配置寄存器 EXTICR,这样我们要先开启复 用时钟,然后配置 IO 口与中断线的对应关系。才能把外部中断与中断线连接起 来。 开启与该 IO 口相对的线上中断 / 事件,设置触发条件。这一步,我们要 配置中断产生的条件, STM32可以配置成上升沿触发,下降沿触发, 或者任意 电平变化触发, 但是不能配置成高电平触发和低电平触发。 这里根据自己的实际 情况来配置。 同时要开启中断线上的中断, 这里需要注意的是: 如果使用外部中 断,并设置该中断的 EMR位的话, 会引起软件仿真不能跳到中断, 而硬件上是可 以的。而不设置 EMR,软件仿真就可以进入中断服务函数,并且硬件上也是可以

文档评论(0)

fengnaifeng + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档