PUBLICO:Tutoriales básicos para poder utilizar la placa STM32F103C8T6

De SOA - Wiki - Unlam
Ir a la navegación Ir a la búsqueda


Menú >> Acceso_Privado >> Investigaciones >> Investigaciones2018_2019 >> Tutoriales básicos para poder utilizar la placa STM32F103C8T6


Manuales y Tutoriales sobre la placa BluePill (STM32F103C8T6)

Video Tutoriales

Ejemplos con la BLue Pill (STM32F103C8T6)

Uso de Entradas y Salidas Digitales

Se creo un programa que esta subido en el siguiente enlace en de git, donde se prueban las entradas y salidas digitales en la Blue Pill (STM32F103C8T6):
https://gitlab.com/so-unlam/Monitoreo_2doProyecto/tree/develop/Codigos%20de%20Prueba/entrada_salida_digital/boton_led
El código del programa lo que hace es cuando se presione un boton pulsador se encienda automáticamente el led interno de la placa. Para hacer este programa se adaptó el siguiente tutorial para la placa STM32F4.
http://www.intesc.mx/tutorial-gpio
NOTA: Los pasos de que haya que seguir de tutorial son iguales para la blue pill, lo unico que cambia es la configuración de los pines con el STM32CUBE.Ya que hay que adaptarlos según el STM32F103C8T6, el resto es todo igual

Uso de Entradas Analógicas

Se  desarrollo un ejemplo de entrada Analogica con la placa BluePill, STM32F103C8T6. Se creo el mismo ejemplo de distintas formas,
donde se usa 2 sensores Analogicos(un potenciometro  y un sensor de luz), a través de pooling, IRQ y DMA.
*Potenciomentro_analogico_Poll: Hace el sensado por polling *Potenciomentro_analogico_IRQ: Hace el se por IRQ *Potenciomentro_analogico_DMA: Hace el sensado por DMA
Este ejemplo se realizo en base a los siguientes tutoriales de la placa STM32F4: * Tutorial ADC Generico * Tutorial ADC usando Polling * Tutorial ADC usando IRQ * Tutorial ADC usando DMA * Tutorial ADC leer multiples sensores

Realizar un printf y scanf a través de una terminal serial

Se creo un programa donde se pueden enviar y recibir caracters de una terminal serial como Putty. De esta forma se pueden simular los comandos printf y 
scanf en forma remota desde la Blue Pill. El programa esta subido en el siguiente link de GIT:
https://gitlab.com/so-unlam/Monitoreo_2doProyecto/tree/develop/Codigos%20de%20Prueba/serial_printf
Para poder realizar este ejemplo se siguieron las instrucciones del siguiente links.
* https://nerd.mmccoo.com/2017/09/01/6-ways-to-communicate-with-stm32-part-2-uart-and-gdb/
Además se utilizó la siguiente biblioteca para poder realizar los printf, adaptandó su codigo al funcionamiento de la Blue Pill
* https://github.com/hammerfet/BrinirController/blob/master/Firmware/serial.c

Pasos a seguir para poder realizar un printf en un proyecto nuevo

1)Conectar los pines del CP2102 con los de la blue pill de la siguiente manera
CP2102 BLUEPILL
GND G (GND)
RX A9
TX A10


2)Crear un Nuevo Proyecto en STM32CUBE para la placa Blue Pill (STM32F103C6T6)
3)Configurar los pines como se muestra en la siguiente imagen
 •SYS->DEBUG->SERIAL WIRE 
 •USART1->MODE->ASYNCHRONOUS 
Pinout.JPG
4)Ir a la solapa CONFIGURACION  y configurar a USART
Configuracion.JPG
5)En la solapa DMA settings habilitar el modo DMA para el pin RX y su buffer CIRCULAR.
6)En la solapa NVIC SETTINGS habilitar la opción USART1 GLOBAL INTERRUPT y luego seleccionar  OK
Irq.JPG
7)Luego ir a la configuración del proyecto y habilitar la opción que la inicialización de periféricos se creen en archivos separados y no en el main.
Configuracion proyecto.JPG
8)Luego dar ok y generar el código del proyecto con el STM32CUBE.
9)Abrir el proyecto generado con el Eclipse (SYSTEM WORKBENCH)
10)Copiar los siguientes archivos en tu pryecto:
Serial_transmition.c: En el directorio SRC • Serial_transmition.h: En el directorio INC
Los cuales se pueden descargar de los siguientes enlaces: Serial_transmition.c y serial_trasnmition.h
11)Modificar el archivo usart.c agregando el siguiente código
/* USER CODE BEGIN 1 */ UART_HandleTypeDef getHuart() {
return huart1;
}
12)Modificar el archivo usart.h, agregando el siguiente código dentro del bloque del define __usart_H
/* USER CODE BEGIN Prototypes */ UART_HandleTypeDef getHuart(); /* USER CODE END Prototypes */
13)Luego en la parte de inicialización de la función main, dentro del archivo  main.c, poner el siguiente código de inicialización:
#include "serial_trasnmition.h" ……… ………
int main(void) { ……… ……… /* USER CODE BEGIN 2 */ UART_HandleTypeDef huart=getHuart(); startReceiving(huart); /* USER CODE END 2 */ ………
while (1) { ……… ……… }
14)Despues del startReceiving se va a poder hacer un print en la consola remota  usando la misma sintaxis que un printf. Por ejemplo ejemplo.
print("valor x:%d\n\r",x );
15.)Finalmente abrir una terminal serial, a través de Putty u otro programa, configurándolo a una velocidad de 115200 baudios. Luego 
 compilar y ejecutar el código fuente. Listo, se verá como se imprime los mensajes remotamente.

Manuales y Tutoriales sobre el Bluethoot 4.0 HM-10

Bluethoot 4.0 y Android

Para hacer las pruebas inciales de comunicación con el Bluethoot 4.0, antes de empezar a programar la app de Android y el STM32 conviene esta pruebas para ver la viabilidad de la comunicaición. Para eso usar 2 celulares como se muestra en la siguiente figura.


Prueba1.jpg