Quick Start Guide
MUC STM32F4 Discovery
[Link]. Ing. Jos Luis Ramirez Arias Ph.D.
Descarga en instalacin de software
Descargar ST-Link
[Link]
mbedded-software/development-tool-
software/[Link]
Descargar Keil ARM Vision 5
[Link]
NLOAD
Interface Grafica Keil Vision 5
Ventana de Ventana de archivos
Proyecto
Ventana de Resultado
Creacin de un nuevo proyecto
Project->New Vision Project
Seleccionar una carpeta o
crearla
Asignarle nombre al proyecto
Guardar
Aparece cuadro de dialogo
Select Device fot Target 1
Seleccionar Dispositivo
Administracin del run-time environment
Crear Grupos de Cdigo
Click en el botn file
extensions
Modificar el Nombre del
targer
Crear cuatro grupos: User,
Board, Drivers y Compilador
Archivo main.c
Hacer click derecho sobre el
grupo user
Seleccionar Add new tem
Seleccionar C File (.c)
En el campo Name escribir
main
Click en Add
Archivos requeridos
Nombre del archivo Funcin
stm32f4xx_it.c Manejo de excepciones
stm32f4xx_it.h e interrupciones
system_stm32f4xx.c Configuracin del reloj
stm32f4xx_conf.h Librera de
configuracin
Los archivos deben ser pegados en la misma
carpeta donde se creo el archivo main.c
Grupo board
Contiene un solo archivo stm32f4_discovery.c que contiene la informacin
para manejar los leds y los botones incluidos
El archivo esta ubicado en:
..\Drivers STM32F4 Discovery\Utilities\STM32F4-Discovery
Grupo Drivers
Nombre del Funcin Ubicacion
archivo
stm32f4xx_rcc.c Manejo de reloj e ..\Drivers STM32F4
interrupciones Discovery\Libraries\STM
misc.c Manejo de interrupciones y 32F4xx_StdPeriph_Drive
prioridades r\src
stm32f4xx_gpio.c Manejo de perifricos de
entrada y salida,
configuracin de funciones
alternativas
stm32f4xx_exti.c Manejo de interrupciones
externas
stm32f4xx_syscfg.c Mapeo de memoria,
conexin de interrupciones
externas y configuracin eth
Grupo Compilador
Contiene un solo archivo startup_stm32f4xx.s que contiene la informacin
para configuracin inicial del dispositivo
El archivo esta ubicado en:
..\Drivers STM32F4
Discovery\Libraries\CMSIS\ST\STM32F4xx\Source\Templates\arm
Options for target (Device)
Options for target (Target)
Options for target (C/C++)
Click
Options for target (Debug)
Clic
Options for target (Utilities)
Click
Cdigo Fuente
GPIO_ResetBits(GPIOD, GPIO_Pin_12);
GPIO_SetBits(GPIOD, GPIO_Pin_13);
#include "stm32f4_discovery.h"
Delay(0x3FFFFF);
GPIO_InitTypeDef GPIO_InitStructure; GPIO_ResetBits(GPIOD, GPIO_Pin_13);
GPIO_SetBits(GPIOD, GPIO_Pin_14);
void Delay(__IO uint32_t nCount);
Delay(0x3FFFFF);
int main(void)
{ GPIO_ResetBits(GPIOD, GPIO_Pin_14);
GPIO_SetBits(GPIOD, GPIO_Pin_15);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);
Delay(0x7FFFFF);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13| GPIO_Pin_14| GPIO_Pin_15; GPIO_ResetBits(GPIOD, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; Delay(0xFFFFFF);
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; }
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; }
GPIO_Init(GPIOD, &GPIO_InitStructure);
void Delay(__IO uint32_t nCount)
while (1) {
{ while(nCount--)
/* PD12 to be toggled */ {
GPIO_ResetBits(GPIOD, GPIO_Pin_15); }
GPIO_SetBits(GPIOD, GPIO_Pin_12);
/* Insert delay */
Delay(0x3FFFFF);