Programa modificado para formatear la consola utilizando secuencias de ESCape

Dependencies:   mbed

Committer:
Antulius
Date:
Fri Sep 13 18:38:44 2019 +0000
Revision:
0:21fd70d57ac7
STM32F103C8_Hola_Mundo  Programa actualizado para utilizar secuencias de ESCape

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 0:21fd70d57ac7 1 /* ###########################################################################
Antulius 0:21fd70d57ac7 2 ** Archivo : main.c
Antulius 0:21fd70d57ac7 3 ** Proyecto : STM32-103C8_Hola_Mundo
Antulius 0:21fd70d57ac7 4 ** Procesador : STM32F103C8
Antulius 0:21fd70d57ac7 5 ** Herramienta : Mbed
Antulius 0:21fd70d57ac7 6 ** Version : Driver 01.01
Antulius 0:21fd70d57ac7 7 ** Compilador : GNU C Compiler
Antulius 0:21fd70d57ac7 8 ** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
Antulius 0:21fd70d57ac7 9 ** Descripción :
Antulius 0:21fd70d57ac7 10 ** Este proyecto muestra la configuración y uso de la Terminal Serial
Antulius 0:21fd70d57ac7 11 ** This module contains user's application code.
Antulius 0:21fd70d57ac7 12 ** Componentes : Serial, etc .
Antulius 0:21fd70d57ac7 13 ** Configuraciones : Se puede seleccionar entre diferentes velocidades de
Antulius 0:21fd70d57ac7 14 ** transmisión
Antulius 0:21fd70d57ac7 15 ** Autores :
Antulius 0:21fd70d57ac7 16 ** ATEAM Development Group:
Antulius 0:21fd70d57ac7 17 ** - Antulio Morgado Valle
Antulius 0:21fd70d57ac7 18 **
Antulius 0:21fd70d57ac7 19 ** Versión : Beta
Antulius 0:21fd70d57ac7 20 ** Revisión : A
Antulius 0:21fd70d57ac7 21 ** Release : 0
Antulius 0:21fd70d57ac7 22 ** Bugs & Fixes :
Antulius 0:21fd70d57ac7 23 ** Date : 20/10/2019
Antulius 0:21fd70d57ac7 24 ** Ejemplpo del Hola Mundo
Antulius 0:21fd70d57ac7 25 ** 27/09/2010
Antulius 0:21fd70d57ac7 26 **
Antulius 0:21fd70d57ac7 27 **
Antulius 0:21fd70d57ac7 28 ** ###########################################################################*/
Antulius 0:21fd70d57ac7 29 /*
Antulius 0:21fd70d57ac7 30 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:21fd70d57ac7 31 : Includes
Antulius 0:21fd70d57ac7 32 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:21fd70d57ac7 33 */
Antulius 0:21fd70d57ac7 34 #include "stm32f103c8t6.h"
Antulius 0:21fd70d57ac7 35 #include "mbed.h"
Antulius 0:21fd70d57ac7 36 #include "Serial.h"
Antulius 0:21fd70d57ac7 37 #include "stdio.h"
Antulius 0:21fd70d57ac7 38 /*
Antulius 0:21fd70d57ac7 39 :...............................................................................
Antulius 0:21fd70d57ac7 40 : Definiciones
Antulius 0:21fd70d57ac7 41 :...............................................................................
Antulius 0:21fd70d57ac7 42 */
Antulius 0:21fd70d57ac7 43 #define on 0 // Estado para boton presionado
Antulius 0:21fd70d57ac7 44 #define off 1 // Estado para boton sin presionar
Antulius 0:21fd70d57ac7 45 #define hold 2 // Estado para boton mantenido
Antulius 0:21fd70d57ac7 46 #define release 3 // Estado para boton liberado
Antulius 0:21fd70d57ac7 47 #define FALSE 0 // Estado FALSO
Antulius 0:21fd70d57ac7 48 #define TRUE 1 // Estado VERDADERO
Antulius 0:21fd70d57ac7 49
Antulius 0:21fd70d57ac7 50 /*
Antulius 0:21fd70d57ac7 51 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 52 | Configuración de Puertos
Antulius 0:21fd70d57ac7 53 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 54 */
Antulius 0:21fd70d57ac7 55
Antulius 0:21fd70d57ac7 56 // ***** Host PC Terminal Communication channels
Antulius 0:21fd70d57ac7 57 Serial terminal (PA_2, PA_3); // Inicializa la comunicación serial a la PC (Tx,Rx)
Antulius 0:21fd70d57ac7 58 //Serial terminal(USBTX, USBRX,115200);// Tx, Rx Baud Rate - Terminal Serial por USB @ 115,200 Bauds
Antulius 0:21fd70d57ac7 59
Antulius 0:21fd70d57ac7 60 /*
Antulius 0:21fd70d57ac7 61 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 62 | Variables Globales de Usuario
Antulius 0:21fd70d57ac7 63 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 64 */
Antulius 0:21fd70d57ac7 65 uint32_t Baud_Rate = 115200; // Velocidad de Transmisión (Bauds)
Antulius 0:21fd70d57ac7 66
Antulius 0:21fd70d57ac7 67 /*
Antulius 0:21fd70d57ac7 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:21fd70d57ac7 69 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Antulius 0:21fd70d57ac7 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:21fd70d57ac7 71 */
Antulius 0:21fd70d57ac7 72 void Setup(void); // Función que inicializa la Tarjeta
Antulius 0:21fd70d57ac7 73 /* END definitions */
Antulius 0:21fd70d57ac7 74
Antulius 0:21fd70d57ac7 75 /*
Antulius 0:21fd70d57ac7 76 #===============================================================================
Antulius 0:21fd70d57ac7 77 |
Antulius 0:21fd70d57ac7 78 | P R O G R A M A P R I N C I P A L
Antulius 0:21fd70d57ac7 79 |
Antulius 0:21fd70d57ac7 80 #===============================================================================
Antulius 0:21fd70d57ac7 81 */
Antulius 0:21fd70d57ac7 82 int main()
Antulius 0:21fd70d57ac7 83 { // Inicialización de variables, puertos e interrupciones
Antulius 0:21fd70d57ac7 84 confSysClock(); // Configure system clock (72MHz HSE clock, 48MHz USB clock)
Antulius 0:21fd70d57ac7 85 Setup();
Antulius 0:21fd70d57ac7 86 terminal.printf ("ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\n\r");
Antulius 0:21fd70d57ac7 87 printf ("\vHola Mundo!\r");
Antulius 0:21fd70d57ac7 88 printf ("\n\nPresiona cualquier tecla para continuar...");
Antulius 0:21fd70d57ac7 89 char opcion = terminal.getc();
Antulius 0:21fd70d57ac7 90
Antulius 0:21fd70d57ac7 91 while (TRUE) // El Lazo del Programa principal está aquí !!!
Antulius 0:21fd70d57ac7 92 {
Antulius 0:21fd70d57ac7 93 printf("\n\r\v\tHola ESIME - IPN!!!\n\r\v");
Antulius 0:21fd70d57ac7 94 printf ("\033[1;31mEste es un texto rojo.\n\r\033[0m");
Antulius 0:21fd70d57ac7 95 printf ("\033[1;32mEste es un texto verde.\n\r\033[0m");
Antulius 0:21fd70d57ac7 96 printf ("\033[1;34mEste es un texto azul.\n\r\033[0m");
Antulius 0:21fd70d57ac7 97 printf ("\v\tHecho en \033[1;32mMe\033[0mxi\033[1;31mco.\n\r\v\v\033[0m");
Antulius 0:21fd70d57ac7 98 printf ("\n\r Pulse cualquier tecla para continuar!\r");
Antulius 0:21fd70d57ac7 99 opcion = terminal.getc();
Antulius 0:21fd70d57ac7 100 terminal.putc(opcion);
Antulius 0:21fd70d57ac7 101 terminal.printf("\n\a\f");
Antulius 0:21fd70d57ac7 102 }
Antulius 0:21fd70d57ac7 103 }
Antulius 0:21fd70d57ac7 104 /* END main */
Antulius 0:21fd70d57ac7 105
Antulius 0:21fd70d57ac7 106 /*
Antulius 0:21fd70d57ac7 107 ................................................................................
Antulius 0:21fd70d57ac7 108 : Rutinas de los Vectores de Interrupción
Antulius 0:21fd70d57ac7 109 ................................................................................
Antulius 0:21fd70d57ac7 110 */
Antulius 0:21fd70d57ac7 111
Antulius 0:21fd70d57ac7 112 /* END Events */
Antulius 0:21fd70d57ac7 113 /*
Antulius 0:21fd70d57ac7 114 ________________________________________________________________________________
Antulius 0:21fd70d57ac7 115 |
Antulius 0:21fd70d57ac7 116 | Funciones Prototipo
Antulius 0:21fd70d57ac7 117 |_______________________________________________________________________________
Antulius 0:21fd70d57ac7 118 */
Antulius 0:21fd70d57ac7 119 // Las Funciones Prototipo van aquí !
Antulius 0:21fd70d57ac7 120 void Setup()
Antulius 0:21fd70d57ac7 121 {
Antulius 0:21fd70d57ac7 122 terminal.baud(Baud_Rate); // Se configura la velocidad de transmisión e inicia la comunicación serial.
Antulius 0:21fd70d57ac7 123 terminal.printf("System is Wake Up!.\n\r");
Antulius 0:21fd70d57ac7 124 }
Antulius 0:21fd70d57ac7 125
Antulius 0:21fd70d57ac7 126 /* END routines */
Antulius 0:21fd70d57ac7 127
Antulius 0:21fd70d57ac7 128 /* END program */
Antulius 0:21fd70d57ac7 129
Antulius 0:21fd70d57ac7 130 /*+-----------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 131 *+ La documentación va aquí!:
Antulius 0:21fd70d57ac7 132 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 133 | SECUENCIAS DE ESCAPE PARA LA TERMINAL SERIAL
Antulius 0:21fd70d57ac7 134 |
Antulius 0:21fd70d57ac7 135 | SECUENCIA VALOR DESCRIPCIÓN
Antulius 0:21fd70d57ac7 136 |
Antulius 0:21fd70d57ac7 137 | \n Nueva línea (new line). El cursor pasa a la primera posición
Antulius 0:21fd70d57ac7 138 | de la línea siguiente
Antulius 0:21fd70d57ac7 139 | \r Retorno de carro (carriage return). El cursor pasa a la
Antulius 0:21fd70d57ac7 140 | primera posición de la línea donde
Antulius 0:21fd70d57ac7 141 | nos encontremos.
Antulius 0:21fd70d57ac7 142 | \t Tabulador (tab). El cursor pasa a la siguiente posición de
Antulius 0:21fd70d57ac7 143 | tabulación.
Antulius 0:21fd70d57ac7 144 | \a Alerta (bell). Crea un aviso bien de forma visible o bien
Antulius 0:21fd70d57ac7 145 | mediante sonido.
Antulius 0:21fd70d57ac7 146 | \b Espacio atrás (backspace). Hace retroceder el cursor una
Antulius 0:21fd70d57ac7 147 | posición a la izquierda.
Antulius 0:21fd70d57ac7 148 | \f Alimentación de página (form feed). Crea una nueva página.
Antulius 0:21fd70d57ac7 149 | \v Tabulación vertical (vertical tab).
Antulius 0:21fd70d57ac7 150 | \0 Caracter Nulo (null).
Antulius 0:21fd70d57ac7 151 | \' Apóstrofo o comilla simple.
Antulius 0:21fd70d57ac7 152 | \” Muestra la comilla doble.
Antulius 0:21fd70d57ac7 153 | \? Muestra un interrogante.
Antulius 0:21fd70d57ac7 154 | \\ Muestra la barra invertida.
Antulius 0:21fd70d57ac7 155 | \número_octal Muestra el carácter ASCII correspondiente según el número
Antulius 0:21fd70d57ac7 156 | octal que se haya especificado.
Antulius 0:21fd70d57ac7 157 | \xnúmero_hexadecimal Muestra el carácter ASCII correspondiente según el
Antulius 0:21fd70d57ac7 158 | número hexadecimal que se haya
Antulius 0:21fd70d57ac7 159 | especificado.
Antulius 0:21fd70d57ac7 160 | \unnnn Muestra Caracter en código unicode.
Antulius 0:21fd70d57ac7 161 | \unnnnnnnn Muestra varios caracteres en código unicode.
Antulius 0:21fd70d57ac7 162 |
Antulius 0:21fd70d57ac7 163 | Tambien consultar:
Antulius 0:21fd70d57ac7 164 | https://www.enmimaquinafunciona.com/pregunta/170760/secuencias-de-escape-terminales-en-la-pantalla-gnu
Antulius 0:21fd70d57ac7 165 +--------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 166 |
Antulius 0:21fd70d57ac7 167 | EXAMEN
Antulius 0:21fd70d57ac7 168 |
Antulius 0:21fd70d57ac7 169 | 1.- Utilizando printf y las secuencias de escape, crear una Carátula de
Antulius 0:21fd70d57ac7 170 | prentación con los datos personales y escolares.
Antulius 0:21fd70d57ac7 171 |
Antulius 0:21fd70d57ac7 172 +--------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 173 |
Antulius 0:21fd70d57ac7 174 | T H E A N T U L I U S T E A M
Antulius 0:21fd70d57ac7 175 | Research, Development, Systems Equipment, Support & Spare Parts I n c.
Antulius 0:21fd70d57ac7 176 | (C) Copyright 1989-2014, All rigths Reserved
Antulius 0:21fd70d57ac7 177 |
Antulius 0:21fd70d57ac7 178 | This program is licensed under rules of
Antulius 0:21fd70d57ac7 179 | THE BEANERS TECHNOLOGIES PROYECT
Antulius 0:21fd70d57ac7 180 +-------------------------------------------------------------------------------
Antulius 0:21fd70d57ac7 181 */
Antulius 0:21fd70d57ac7 182
Antulius 0:21fd70d57ac7 183 /* END documentation */
Antulius 0:21fd70d57ac7 184
Antulius 0:21fd70d57ac7 185 /* END Mbed */