Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Revision 1:a8cbf0b997d2, committed 2019-09-17
- Comitter:
- Antulius
- Date:
- Tue Sep 17 17:55:12 2019 +0000
- Parent:
- 0:21fd70d57ac7
- Commit message:
- STM32F102_Hola_Mundo El famosisimo programa de Hola Mundo, pero con secuencias de ESCape...
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Fri Sep 13 18:38:44 2019 +0000
+++ b/main.cpp Tue Sep 17 17:55:12 2019 +0000
@@ -1,8 +1,9 @@
-/* ###########################################################################
+/* #############################################################################
** Archivo : main.c
-** Proyecto : STM32-103C8_Hola_Mundo
-** Procesador : STM32F103C8
-** Herramienta : Mbed
+** Proyecto : STM32F103C8_Hola_Mundo
+** Procesador : STM32F103C8T6
+** Plataforma : Blue Pill
+** Herramienta : Mbed Compiler
** Version : Driver 01.01
** Compilador : GNU C Compiler
** Fecha/Hora : 14-07-2015, 11:48, # CodeGen: 0
@@ -21,9 +22,9 @@
** Release : 0
** Bugs & Fixes :
** Date : 20/10/2019
-** Ejemplpo del Hola Mundo
+** Adición de secuencias de ESCape
** 27/09/2010
-**
+** Ejemplo del Hola Mundo
**
** ###########################################################################*/
/*
@@ -54,9 +55,9 @@
*/
// ***** Host PC Terminal Communication channels
-Serial terminal (PA_2, PA_3); // Inicializa la comunicación serial a la PC (Tx,Rx)
-//Serial terminal(USBTX, USBRX,115200);// Tx, Rx Baud Rate - Terminal Serial por USB @ 115,200 Bauds
-
+Serial terminal (PA_2, PA_3); // Tx, Rx - Terminal Serial (TTL Level) (Default Rate: 9600)
+//Serial terminal(USBTX, USBRX,115200); // Tx, Rx, Baud Rate - Terminal Serial por USB @ 115,200 Bauds
+//Serial terminal(PA_9, PA_10); // Tx, Rx Using MAX3232 or BlueTooth
/*
+-------------------------------------------------------------------------------
| Variables Globales de Usuario
@@ -70,8 +71,8 @@
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
*/
void Setup(void); // Función que inicializa la Tarjeta
+
/* END definitions */
-
/*
#===============================================================================
|
@@ -85,20 +86,41 @@
Setup();
terminal.printf ("ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA\n\r");
printf ("\vHola Mundo!\r");
+ printf ("\v\t\vH\ne\nl\nl\no\n \nW\no\nr\nl\nd\n!\r");
printf ("\n\nPresiona cualquier tecla para continuar...");
char opcion = terminal.getc();
-
+
while (TRUE) // El Lazo del Programa principal está aquí !!!
- {
- printf("\n\r\v\tHola ESIME - IPN!!!\n\r\v");
- printf ("\033[1;31mEste es un texto rojo.\n\r\033[0m");
- printf ("\033[1;32mEste es un texto verde.\n\r\033[0m");
- printf ("\033[1;34mEste es un texto azul.\n\r\033[0m");
- printf ("\v\tHecho en \033[1;32mMe\033[0mxi\033[1;31mco.\n\r\v\v\033[0m");
+ { // La secuencia de ESCape puede iniciar con \e ó \033 ó \x1B
+ printf("\n\r\v\tHola \033[1;37;42mESIME\x1B[0m - \e[127;37;41mIPN\033[0m!!!\n\r\v");
+ printf ("\033[1;31mEste es un texto rojo.\n\r\033[0m");
+ printf ("\x1B[1;32mEste es un texto verde.\n\r\x1B[0m");
+ printf ("\e[1;34mEste es un texto azul.\n\r\e[0m");
+// printf ("\v\tHecho en \033[1;32mMe\033[0mxi\033[1;31mco.\n\r\v\v\033[0m");
+ printf ("\v\tHecho en \e[1;32mMe\e[0mxi\e[1;31mco.\e[0m\n\r\v\v\e[0m");
+ terminal.printf("\r\t \e[1m\e[7mby ATEAM R&D\e]0m");
printf ("\n\r Pulse cualquier tecla para continuar!\r");
opcion = terminal.getc();
terminal.putc(opcion);
- terminal.printf("\n\a\f");
+ uint8_t attr;
+ uint8_t bg;
+ uint8_t fg;
+ printf("\n\v\t\t\"ATRIBUTOS DE COLORES\"\r\n");
+ for (attr=0;attr<2;attr++)
+ {
+ for (bg=30;bg<38;bg++)
+ {
+ for (fg=40;fg<48;fg++)
+ {
+ printf ("\e[%d;%d;%dm%d,%d,%d\e[0m ",attr,bg,fg,attr,bg,fg);
+ }
+ printf("\r\n");
+ }
+ }
+// terminal.printf("\a\f\n\r"); //\e[033c
+ terminal.printf("\n\a\f\e[7;5;1mBlinking\e[0m\r\n");
+ wait(10);
+ terminal.printf(" =)\e[2J"); // Clear Screen
}
}
/* END main */
@@ -160,8 +182,105 @@
| \unnnn Muestra Caracter en código unicode.
| \unnnnnnnn Muestra varios caracteres en código unicode.
|
-| Tambien consultar:
+| \e[ es para el inicio de una secuencia de caracteres no imprimibles
+| \e] es para el final de una secuencia de caracteres no imprimibles
+|
+| Consejo: para memorizarlo, primero puede agregar \e[\e] y luego poner su
+| código ANSI entre ellos:
+| – \e[start-ANSI-code\e]
+| – \e[end-ANSI-code\e]
+|
+| tipo de secuencia de color:
+|
+| 3/4 bit
+| 8 bits
+| 24 bits
+|
+| Antes de sumergirte en estos colores, debes conocer 4 modos con estos códigos:
+| 1. modo de color
+|
+| Modifica el estilo del color NO el texto. Por ejemplo, haz que el color sea más claro o más oscuro.
+|
+| 0 reinicio
+| 1; Más ligero de lo normal
+| 2; más oscuro de lo normal
+|
+| Este modo no es compatible ampliamente. Es totalmente compatible con Gnome-Terminal.
+| 2. modo de texto
+|
+| Este modo es para modificar el estilo del texto NO el color.
+|
+| 3; itálico
+| 4; subrayar
+| 5; parpadeando (lento)
+| 6; parpadeando (rápido)
+| 7; marcha atrás
+| 8; esconder
+| 9; tachar
+|
+| y son casi compatibles.
+| Por ejemplo, KDE-Konsole admite 5; pero Gnome-Terminal no lo hace y
+| Gnome es compatible con 8; pero KDE no.
+| 3. modo de primer plano
+|
+| Este modo es para colorear el primer plano.
+| 4. modo de fondo
+|
+| Este modo es para colorear el fondo.
+|
+ECMA-48 Pone modo Gráfico
+ La secuencia ECMA-48 SGR ESC [ <parámetros> m establece los atributos de
+ la pantalla. Se pueden poner varios atributos en la misma secuencia.
+
+ par resultado
+ 0 restablece todos los atributos a sus valores predeterminados
+ 1 pone negrillas
+ 2 pone medio brillo (simulado con color en una pantalla a color)
+ 4 pone subrayado (simulado con color en una pantalla a color)
+ (los colores para simular disminución o subrayado se ponen con
+ ESC ] ...)
+ 5 pone intermitencia
+ 7 pone vídeo inverso
+ 10 restaura asociación seleccionada, indicador de control de
+ pantalla y cambia el indicador meta
+ 11 selecciona no asociación, pone indicador de control de
+ pantalla, restaura indicador de cambio meta
+ 12 selecciona no asociación, pone indicador de control de
+ pantalla, pone indicador de cambio meta (que hace que el bit
+ más alto de un byte cambie antes de que se haga la traducción
+ de la tabla de asociación.)
+ 21 pone intensidad normal (esto no es compatible con ECMA-48)
+
+ 22 pone intensidad normal
+ 24 quita subrayado
+ 25 quita intermitencia
+ 27 quita vídeo inverso
+ 30 pone negro
+ 31 pone rojo
+ 32 pone verde
+ 33 pone marrón
+ 34 pone azul
+ 35 pone rosa
+ 36 pone celeste
+ 37 pone blanco
+ 38 pone subrayado, color predeterminado
+ 39 quita subrayado, pone color predeterminado
+ 40 pone negro de fondo
+ 41 pone rojo de fondo
+ 42 pone verde de fondo
+ 43 pone marrón de fondo
+ 44 pone azul de fondo
+ 45 pone rosa de fondo
+ 46 pone celeste de fondo
+ 47 pone blanco de fondo
+ 49 pone el color de fondo predeterminado
+
+| Tambien consultar:
+| https://en.wikipedia.org/wiki/ANSI_escape_code
+| https://es.wikipedia.org/wiki/C%C3%B3digo_escape_ANSI
+| http://www.braun-home.net/michael/info/misc/VT100_commands.htm
| https://www.enmimaquinafunciona.com/pregunta/170760/secuencias-de-escape-terminales-en-la-pantalla-gnu
+| http://softwarelivre.org/terceiro/blog/a-visual-cheat-sheet-for-ansi-color-codes
+--------------------------------------------------------------------------------
|
| EXAMEN