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
Diff: main.cpp
- Revision:
- 1:a8cbf0b997d2
- Parent:
- 0:21fd70d57ac7
diff -r 21fd70d57ac7 -r a8cbf0b997d2 main.cpp --- 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