嵌入式课程设计报告

  • 格式:docx
  • 大小:19.18 KB
  • 文档页数:10

下载文档原格式

  / 10
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式课程设计报告

最近几年,几乎所有的IT 企业对应届毕业生都有抱怨:动手能力太差,编程水平低下。下面和小编一起来看看报告吧!

嵌入式课程设计报告Cortex-M3 是ARM 公司基于ARM V7 架构的新型芯片内核。STM32V100-II 型是英蓓特公司新推出的一款基于ST 意法半导体STM32 系列处理器(Cortex-M3 内核)的全功能评估板。STM103V100-II 评估板有USB,Motor Control,CAN,SD 卡,Smart 卡,UART,Speaker,LCD,LED,BNC,耳塞插孔等丰富的外设,有助于用户轻松开发STM32 的强大功能。STM32 系列使用了ARM 最新的、先进架构Cortex-M3 内核,本文论述了在Keil Realview 开发环境上开发基于汇编语言的LED 控制程序,基于对STM32 的GPIO 寄存器写值配置思想,控制EduKit-M3 实验平台的发光二极管LED1、LED2、LED3、LED4,使它们有规律地点亮。

、设计需求

Keil Realview 开发环境上,全部采用汇编语言编程,实现对EduKit-M3 实验平台的发光二极管LED1、LED2、LED3、LED4 的亮灭控制,使它们有规律地点亮。这里采用例程提供的顺序点亮方式,按照LED1 亮LED2 亮LED3 亮LED4 亮,如此反复,要求每个LED 亮灭之间延

时一段时间,以增强可观性。需要说明的是,这仅仅作为程序控制LED 的一种控制方式,基于点亮LED 的控制原理,可以编程实现各种显示LED 的亮灭模式,并提供一种通用的控制方法,要求程序可读性强,易于修改。

、设计原理

STM32 通用GPIO 端口概述STM32F10x 处理器上共有7 个I/O 端口:A、B、C、D、E、F、G,每个16 个管脚每组端口每组端口有以下寄存器:,32 位配置寄存器:GPIOx_CRL、GPIOx_CRH 32 为数据寄存器:GPIOx_IDR、GPIOx_ODR 32 位置位/复位寄存器:GPIOx_BSRR 16 位复位寄存器:GPIOx_BRR 32 为锁定寄存器:GPIOx_LCKR I/O 口通用输入、输出端口配置为输入时,每个APB2 时钟周期将端口数据送输入寄存器(GPIOx_IDR),在输入模式下,输出是断开的。输出模式时:写到输出寄存器(GPIOx_ODR) 的值被传给对应的I/O 引脚。在输出模式下,输入是允许的程序设计原理EduKit-M3 实验平台上,通过写值配置端口数据输出寄存器GPIOC_ODR值,可以实现对四个LED 的亮灭控制,因为C 口位和四个LED 灯连通。而这里主要是通过对时钟控制寄存器以及端口C 的各配置寄存器和输出寄存器写值,以达到配置端口,控制LED 的目的。汇编语言与C 语言相比,要求更加贴近硬件,了解M3 内核的内部结构和

寄存器地址。基于汇编语言的编程控制,只需要找出需要配置的端口基地址,然后弄清楚各寄存器的偏移地址,以及各寄存器每位的含义,按照要求写1 或写0 即可。

2

硬件电路

硬件电路描述

本设计是基于EduKit-M3 实验平台的嵌入式开发实例,EduKit-M3 实验平台有四个LED 灯,分别为LED1、LED2、LED3、LED4,对应的连接到I/O 的C 口、、、四位输出位上,不需要外扩电路或者额外接线,简单易行。

程序流程图

软件设计描述

整个工程包含3 个源文件:、和my ,stm32f10x_ 其中为启动代码,。启动代码作用是:1)堆和栈的初始化;2)向量表定义;3)地址重映射及中断向量表的转移;4)设置系统时钟频率;5)中断寄存器的初始化;6)进入汇编主程序。my 是汇编主程序,完成所有控制功能。

程序工作原理概述:对于LED 的控制,主要通过对I/O 端口的配置,将对应的寄存器相应的位写 1 写0 控制。程序首先要经过启动代码段进行相关的启动配置,然后跳转到汇编主程序。汇编主程序完成了时钟、端口配置以及LED 点亮的所有功能。首先需要对于系统时钟进行配

置,已获得系统所用频率。然后进行端口配置低、高寄存器配置,获得输入输出模式以及最大速度。将时钟和端口配置完成后,就可以对输出寄存器进行对应位的写值控制了,从而达到控制LED 的目的,高电平点亮,低电平熄灭。点亮LED 后,转入延时子程序,延时子程序写值0X000FFFFF,做寄存器值减法,减到0 后,过程所需时间即是延时时间,即单个LED 点亮时间。本程序设置循环点亮模式,即LED1 到LED4 顺序循环点亮,将对应位逐次写1,如果需要修改点亮模式,只需修改寄存器的值以及写值顺序即可。

寄存器配置描述端口配置低寄存器(GPIOC_CRL) C口基地址:0X40011000 偏移地址:0x00 复位值:0x44444444 寄存器配置:0X22222222 功能含义:口配置低寄存器为模拟输入模式,端通用推挽输出模式,输出模式,最大速? 2MHz

端口配置高寄存器(GPIOC_CRH) C口基地址:0X40011000 偏移地址:0x04 复位值:0x44444444 寄存器配置:0X22222222 功能含义:口配置高寄存器为模拟输入模式,端通用推挽输出模式,输出模式,最大速? 2MHz 端口输出数据寄存器(GPIOC_ODR) C口基地址:0X40011000 地址偏移:0Ch 寄存器配置0xfffffc4f 0xfffffc8f 复位值:00000000h 功能含义位写1,对应点亮LED1 位写1,

对应点亮LED2

40xfffffd0f 位写1,对应点亮LED3 位写1,对应点亮LED4

时钟控制寄存器(RCC_CR) 复位和时钟基地址:0X40021000 偏移地址: 0x00 复位值: 0x000 XX83 寄存器配置:0X00000003 功能含义:PLL 未锁定,PLL 关闭,时钟监测器关闭,外部1-25MHz 振荡器没有旁?,外部1-25MHz 时钟没有就绪,HSE 振荡器关闭内部8MHz 时钟就绪,内部8MHz 时钟开启。时钟配置寄存器(RCC_CFGR) 复位和时钟基地址:0X40021000 偏移地址: 0x04 复位值: 0x0000 0000 寄存器配置:0X00000000 功能含义:没有时钟输出,PLL 时钟倍分频作为USB 时钟,PLL 2 倍频输出,HSE 不分频,HSI 时钟2 分频后作为PLL 输入时钟,PCLK2 2 分频后作为ADC 时钟,HCLK 不分频,HCLK 不分频,SYSCLK 不分频,HSI 作为系统时钟,HSI 作为系统时钟。AHB外设时钟使能寄存器(RCC_AHBENR) 复位和时钟基地址:0X40021000 偏移地址:0x14 复位值:0x0000 0014 寄存器配置:0X00000014 功能含义:睡眠模式时闪存接口电路时钟开启,睡眠模式时SRAM 时钟开启,DMA 时钟关闭APB2 外设时钟使能寄存器(RCC_APB2ENR) 复位和时钟基地址:0X40021000 偏移地址:0x18 复位值:0x0000 0000 寄存器配置:0XFFFFFFFF 功能含义:USART1 时钟开启,SPI1