欢迎来到天天文库
浏览记录
ID:55803874
大小:113.00 KB
页数:4页
时间:2020-06-08
《嵌入式系统原理实验三跑马灯.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三跑马灯实验实验目的:通过一个经典的跑马灯程序,了解STM32F1的IO口作为输出使用的方法。通过代码控制ALIENTEK战舰STM32开发板上的两个LED:DS0和DS1交替闪烁,实现类似跑马灯的效果内容要点:1.硬件设计本章用到的硬件只有LED(DS0和DS1)。其电路在ALIENTEK战舰STM32F103开发板上默认是已经连接好了的。DS0接PB5,DS1接PE5。所以在硬件上不需要动任何东西。其连接原理图如图:2.软件设计跑马灯实验我们主要用到的固件库文件是:stm32f10x_gpio.c/stm32f10x_gpi
2、o.hstm32f10x_rcc.c/stm32f10x_rcc.hmisc.c/misc.hstm32f10x_usart/stm32f10x_usart.h其中stm32f10x_rcc.h头文件在每个实验中都要引入,因为系统时钟配置函数以及相关的外设时钟使能函数都在这个其源文件stm32f10x_rcc.c中。stm32f10x_usart.h和misc.h头文件在我们SYSTEM文件夹中都需要使用到,所以每个实验都会引用。首先,找到之前新建的Template工程,在该文件夹下面新建一个HARDWARE的文件夹,用来存储以后与
3、硬件相关的代码,然后在HARDWARE文件夹下新建一个LED文件夹,用来存放与LED相关的代码。新建led.h和led.c文件,一个外设对应一个.h和.c文件。在ManageComponents管理里面新建一个HARDWARE的组,并把led.c加入到这个组里面,将led.h头文件的路径加入到工程里面一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内容重复引用,一般通过预编译的方式来写头文件。一般的格式如下:#ifndef__LED_H#define__LED_H……#endif第一次调用时会将#define下
4、面这一节全部定义,重复调用时,下面的东西就不会被引用。头文件里一般用来写函数声明或者宏定义,在源文件中再去定义具体的函数。#ifndef__LED_H#define__LED_HvoidLED_Init(void);#endifled.h然后我们打开USER文件夹下的LED.uvprojx工程(如果是使用的上面新建的工程模板,那么就是Template.uvprojx,大家可以将其重命名为LED.uvprojx),按新建按钮新建一个文件,然后保存在HARDWARE->LED文件夹下面,保存为led.c。在该文件中输入如下代码:#inc
5、lude"led.h"#include"stm32f10x.h"//引用顶层头文件,否则RCC_APB2PeriphClockCmd()函数不可见//初始化PB5和PE5为输出口.并使能这两个口的时钟//LEDIO初始化注释内容voidLED_Init(void){GPIO_InitTypeDefGPIO_InitStructure结构体变量;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB
6、RCC_APB2Periph_GPIOE,ENABLE);//使能PB,PE端口时钟GPIO_InitS
7、tructure.GPIO_Pin=GPIO_Pin_5;//LED0-->PB.5推挽输出GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStructure这个参数需要指针类型,所以我们用结构体变量的地址作为它的参数);GPIOB的设置GPIO_SetBits(GPIOB,GPIO_Pin_5);//输出PB5为高电平GPIO_In
8、itStructure.GPIO_Pin=GPIO_Pin_5;//LED0-->PB.5推挽输出GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;//推挽输出GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOE,&GPIO_InitStructure);GPIOE的设置GPIO_SetBits(GPIOE,GPIO_Pin_5);//PE5输出高}该代码里面就包含了一个函数voidLED_Init(void),该函数的
9、功能就是用来实现配置PB5和PE5为推挽输出。这里需要注意的是:在配置STM32外设的时候,任何时候都要先使能该外设的时钟。GPIO是挂载在APB2总线上的外设,在固件库中对挂载在APB2总线上的外设时钟使能是通过函数RCC_APB2
此文档下载收益归作者所有