![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
Programa modificado para formatear la consola utilizando secuencias de ESCape
Dependencies: mbed
main.cpp@0:21fd70d57ac7, 2019-09-13 (annotated)
- 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?
User | Revision | Line number | New 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 */ |