Está en la página 1de 16

Dr. Victor H.

Benitez
Ingeniería Mecatrónica

UNIVERSIDAD DE SONORA
“El saber de mis hijos hará mi grandeza”

DIVISIÓN DE INGENIERÍA
INGENIERÍA MECATRÓNICA

Practica 0

“Hola Mundo”

Autores

Profesor
Victor Hugo Benitez Baltazar

Asistente
Arvallo Olivas William

HERMOSILLO, SONORA Enero, 2021


Dr. Victor H. Benitez
Ingeniería Mecatrónica

Contenido
INTRODUCCIÓN ........................................................................................................... 3
Objetivo General: ...................................................................................................... 3
Objetivos específicos ................................................................................................ 3
MATERIALES Y MÉTODOS ............................................................................................ 3
ANTES DE INICIAR. CONFIGURACIÓN INICIAL ............................................................ 3
Instalación del driver .................................................................................................... 5
DESARROLLO................................................................................................................ 5
RESULTADOS .............................................................................................................. 15
ACTIVIDADES ............................................................................................................. 16
RECURSOS DE APOYO ................................................................................................ 16
Dr. Victor H. Benitez
Ingeniería Mecatrónica

INTRODUCCIÓN

Objetivo General:
La Practica 0 consiste en el encendido y apagado de un led durante cierto tiempo
de manera intermitente

Objetivos específicos
1. Configurar y verificar la instalción correcta del IDE
2. Configurar y verificar el funcionamiento del hardware
3. Distinguir la configuración básica del entorno de desarrollo
4. Conocer la función del main() y del while()
5.

MATERIALES Y MÉTODOS

1. Un protoboard
2. STM32F303RET6
3. Cable de conexión
4. LEDS
5. Resistencias
6. STM32Cube

ANTES DE INICIAR. CONFIGURACIÓN INICIAL


Es altamente recomendable que antes de iniciar la practica, de una lectura
rápida a todo el documento.
Antes de comenzar a usar la tarjeta núcleo es necesario verificar los siguiente
Checar que los jumpers que se encuentren en la posición siguiente en la tarjeta
núcleo, JP1 off, JP5 (PWR) encendido en U5V, JP6 encendido en (IDD), CN2
encendido (NUCLEO).
La organización de los compoentes de la tarjeta en formato simplificado es la
mostrada en la Figura A, mientras que la Figura B, muestra la vista detallada
donde se pueden ubicar los jumper señalados
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Figura A. Organización de los componentes, formato simple

Figura B. Organización de los componentes, formato detallado


Dr. Victor H. Benitez
Ingeniería Mecatrónica

Figura 1

Instalación del driver


Antes de conectar la tarjeta núcleo a la PC, deberá instalar el driver, de lo
contrario será irreconocible por la PC y le marcará el warning: “Unknown USB
devices found” y deberá instalar los drivers manualmente desde el Device
Manager.
Desde el sitio www.st.com deberá buscar la tarjeta Nucleo - F303RE (la que
estamos usando en el curso) y en la sección tools & Software, bajar e instalar el
driver de la tarjeta ST-Link/V2-1. Es necesario registrarse para descargarlo.
Una vez instalado el driver, conecte la tarjeta a un puerto USB de la PC, la tarjeta
deberá ser reconocida inmediatamente como un dispositvo USB (como si fuera
una memoria externa). Si esto no sucede, deberá reinstalar los drivers de manera
manual como fue indicado arriba.
Si los driver fueron correctamente instalados, observará tanto el led3 (PWR) y el
led1 (COM) encendidos en color rojo; el led2 estará intermitente en color verde.
Para comprobar un programa que trae precargado la memoria del
microcontrolador y con ello verificar el correcto funcionamiento de todo el
sistema, oprima el boton B1, observará como el led1 cambia de frecuencia de
encendido cada que oprime B1.

DESARROLLO

Para la programación del STM32F303RET6 se pueden utilizar diferentes IDEs,


para el desarrollo de las siguientes practicas se utilizará STM32Cube debido a
que no se requiere de una licencia para trabajar, en este documento se presenta,
la creación de un nuevo proyecto, así como el procedimiento para descargar el
programa hacia la tarjeta.
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Para la creación de un nuevo proyecto en el entorno de desarrollo STM32Cube


se presiona en File>NEW>STM32 project, dentro de la ventana de inicio y
esperar a que el selector de tarjetas cargue.

Dentro del menú del selector de tarjeta, buscamos la placa (STM32F303RE), esta
búsqueda puede hacerse utilizando el buscador identificado con un incono de
lupa en la parte superior izquierda o hacerse de forma manual seleccionando la
tarjeta en la lista que aparece en la parte inferior de la ventana, una vez
seleccionada la tarjeta dar click en “NEXT”.

Figura 2. Ventana para seleccionar la tarjeta o microcontrolador


Dr. Victor H. Benitez
Ingeniería Mecatrónica

En la ventana posterior a la del selector de tarjeta seleccionamos el nombre de


nuestro proyecto, así como el lenguaje de programación a trabajar, en nuestro
lenguaje será C y presionamos “FINISH” y esperamos a que el IDE se configure.

Figura 3. Ventana de propiedades del proyecto

Una vez finalizada la configuración STM32Cube se muestra la ventana de


configuración de la tarjeta, en la parte izquierda se encuentra el explorador de
proyectos donde se muestra los archivos disponibles en el proyecto, ahora se
crea un programa para verificar la tarjeta.

Figura 4. Ventana de configuración de pines STM32Cube


Dr. Victor H. Benitez
Ingeniería Mecatrónica

Para comenzar el código de prueba debemos configurar las salidas y entradas


del microcontrolador, cada pin de posee diferentes características útiles para el
proyecto, es posible verlas haciendo clic sobre el pin. Por ejemplo en las Figuras
5 y 6 se muestran diferentes opciones para los pines A5 y A13.

Figura 5. Opciones del pin A5 Figura 6. Opciones del pin A13

El programa de prueba encenderá un led y lo apagará cada medio segundo,


para ello se configura el pin 10 del puerto C como salida; haciendo clic sobre el
y seleccionamos la opción “GPIO_Output”, sobre el pin aparecerá un icono de
tachuela o pincho para marcar que se ha seleccionado ya ese pin, para eliminar
las configuraciones hechas solos hay que volver a hacer clic sobre el pin y
seleccionar “Reset_State”.

Figura 7. Tachuela sobre el pin configurado


Dr. Victor H. Benitez
Ingeniería Mecatrónica

A continuación, se selecciona una etiqueta para trabajar con el pin configurado,


para facilitar las operaciones al momento que se está programando. Para ello,
hacer clic con el botón derecho del mouse y seleccionar “Enter User Label”, en
la caja de texto que aparece se incerta algún identificador y se presiona enter.

Figura 8. Opciones al hacer clic Figura 9. Caja de texto para


derecho etiquetar el pin

Para agregar mas configuraciones del pin, hacer clic sobre “System Core” en la
parte izquierda y seleccionar “GPIO” en el menú desplegado, en este menú

Figura 10. Opciones de configuración de salidas y entradas


Dr. Victor H. Benitez
Ingeniería Mecatrónica

aparecerán todos los pines que se han configurado; se puede cambiar el modo
de trabajo del pin; se puede configurar la salida como pull-down o pull-up;
cambiar el modo open drain o push-pull (el equivalente a totem pole visto en
clase); configurar el estado inicial de la salida así como poder introducir una
nueva etiqueta a la salida seleccionada.
Para la configuración se dejará todo como se muestra en la Figura 10. Ya que se
han configurado las entradas o salidas; se continua con la programación
requerida; hacer clic sobre “Project” y “Generate Code”.

Figura 11. Opciones para la generación de una plantilla en base a


nuestra configuración seleccionada

Dentro del explorador de proyectos desplegar la carpeta “Src” y abrir el archivo


“main.c”.

Figura 12
Dr. Victor H. Benitez
Ingeniería Mecatrónica

STM32Cube proporciona una platilla de trabajo que facilita la configuración de


la tarjeta. Alrededor de la línea 90 de la plantilla aparece el ciclo while donde se
codificará toda la secuencia del programa.

Figura 13. Plantilla de código generado

Para comenzar, se revisa la etiqueta que designó el compilador al pin


seleccionado anteriormente, esto se lleva a cabo bajando el documento hasta
encontrar el método “MX_GPIO_Init” o haciendo clic derecho en
“MX_GPIO_Init()” arriba del ciclo while, seleccionar “Open Declaration”.

Figura 14. Menú para ir a la


declaración del método
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Como se puede ver en la línea 156, se ubica la instrucción GPIO_InitStruct.Pin


donde su igualdad es el nombre con el que se trabajará todo programa siendo
igual a LED_Pin, con lo que se puede observar que el compilador agrego “_Pin”
a la etiqueta que se colocó en la ventana de configuración de pines.

Figura 15. Método realizado por el compilador para la configuración


de los pines

Dentro del compilador de STM32Cube se usa la librería HAL para controlar la


configuración de las entradas y las salidas, hay que tomar en cuenta al momento
de utilizar o crear identificadores, que el compilador distingue entre minúsculas
y mayúsculas; por lo que una variable “LED” es diferente a una variable llamada
“Led”. Para ver las instrucciones que se encuentran dentro del compilador basta
con presionar las teclas “CTRL” + “ESPACIO” así
mismo para ver las funciones dentro de la librera al HAL, se usa HAL_GPIO para
controlar el estado del led.

Figura 16. Menú desplegado al presionar las Figura 17. Menú desplegado al presionar las
teclas CTRL + Espacio teclas CTRL + Espacio después de escribir
HAL_GPIO_

Para hacer que el led encienda y apague cada medio segundo usar la función
HAL_GPIO_TogglePin(“PUERTO”, “PIN”). Para controlar el estado del led, usar
Dr. Victor H. Benitez
Ingeniería Mecatrónica

la función HAL_Delay(“tiempo en ms”) para controlar el tiempo entre cada


cambio de estado del led, quedando el código como se muestra en la Figura 18.

Figura 1

Con el código completo, hacer clic en “Project>Build All” como se muestra en la


figura 19, o sobre el icono de martillo para compilar el programa como se
muestra en la Figura 20.

Figura 2.

Figura 3.
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Ya que el código esté compilado y libre de errores hay que verificarlo


físicamente, para ello se conecta la tarjeta núcleo a la PC, así como las
conexiones electrónicas necesarias. Hacer clic en “Run>Debug As>STM32 MCU
C/C++ Application” para verificar el código en la tarjeta STM32.
Es probable que en esta etapa, el driver ST-Link/V2-1 pida actualizar,
deberemos decirle que si, se abrirá un asistente donde se deberá dar click en
open in update mode y posteriormente en Upgrade y seguir las instrucciones.

Figura 4.

Al hacer clic y finalizar el proceso de esta opción se encenderá un led de color


rojo y verde de manera intermitente, indicando que la tarjeta está en modo
“Debug” como se muestra en la Figura 22. Para comenzar a correr el programa
hacer clic en “Resume” identificado con un icono de un triángulo color verde y
un rectángulo color amarillo en el nuevo menú que aparece en la parte superior,
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Figura 5.

Figura 6. Menú de opciones para el control


del ciclo del programa en modo Debug

RESULTADOS

Al presionar “Resume” el programa empieza a correr en el microcontrolador y


por lo tanto en la tarjeta núcleo, encendiendo y apagando el led cada medio
segundo, como fue programado.
Para detener el programa solo hay que presionar el botón de “Stop” identificado
con un cuadrado color rojo a la derecha del botón “Resume”. Al presionar “Stop”
la tarjeta detiene la intermitencia del led indicador del modo “Debug” dejando
solo al led rojo activado y al programa cargado en la tarjeta.
Dr. Victor H. Benitez
Ingeniería Mecatrónica

Figura 25. Led encendido después de cargar el programa Figura 26. Led Apagado después de transcurrir el medio
a la tarjeta. segundo programado.

ACTIVIDADES
1. Modifique el código para que el led se encienda cada 2 segundos
2. Modifique el código para que el led se encienda 1 segundo y se apague 300 ms
3. Modifique el código para que el led se encienda 300 ms y se apague 1 segundo
4. Entregue un resúmen de la librería HAL
5. ¿Cuáles son las funciones HAL sociadas a las configuraciones GPIO?

RECURSOS DE APOYO
• ST Semiconductor. (2020, julio). Description of STM32F4 HAL and low-layer
drivers. st.com. https://www.st.com/resource/en/user_manual/dm00105879-
description-of-stm32f4-hal-and-ll-drivers-stmicroelectronics.pdf
• https://youtu.be/2IXVKRh-atA

También podría gustarte