Demostración mínima de UART hello world para STC8G1K08A
Ver también::
- ¿Te preocupa el tamaño del firmware? Echa un vistazo a STC8G1K08A tiny 349 byte UART hello world demo
Esta demostración mínima está basada en el compilador sdcc y la librería FwLib_STC8. Inicializa el UART a 115200 baudios e imprime continuamente Hello, world from UART1! seguido de un salto de línea.
main.c
#include "fw_hal.h"
/* Configurar UART1 para una consola de depuración simple estilo 8N1 a 115200 baudios.
* Se usa Timer1 como generador de baudios porque esa es la configuración por defecto
* ya utilizada por las otras demos pequeñas en este repositorio.
*/
static void UART_Init(void)
{
UART1_Config8bitUart(UART1_BaudSource_Timer1, HAL_State_ON, 115200);
}
void main(void)
{
/* Cargar los valores de calibración del reloj desde fw_conf.h y cambiar el MCU a la
* frecuencia de operación configurada antes de que cualquier temporización de
* periférico se derive de SYSCLK.
*/
SYS_SetClock();
/* Inicializar UART1 una vez para que el bucle de abajo pueda enviar salida legible. */
UART_Init();
while(1)
{
/* Enviar una sola cadena terminada en NUL a través de UART1.
* La librería transmite un byte a la vez hasta que alcanza '\0'.
*/
UART1_TxString("Hello, world from UART1!\r\n");
/* Esperar aproximadamente un segundo para que la salida del terminal se mantenga
* legible y la cadencia de mensajes sea fácil de verificar en un adaptador serie.
*/
SYS_Delay(1000);
}
}Cómo flashear
Ver nuestro post Cómo flashear STC8G1K08A usando stcgal
Cómo comprobar la salida serie
Comprueba la salida usando
monitor.sh
picocom -b 115200 /dev/ttyUSB0Uso de memoria
memory_usage.txt
===== Memory usage summary for uart_hello_world =====
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|Q|Q|Q|Q|S|S|S|S|
0x10:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x20:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x30:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x40:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x50:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x60:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x70:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x80:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0x90:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xa0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xb0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData, S:Stack, A:Absolute
Stack starts at: 0x0c (sp set to 0x0b) with 244 bytes available.
No spare internal RAM space left.
Other memory:
Name Start End Size Max
---------------- -------- -------- -------- --------
PAGED EXT. RAM 0 256
EXTERNAL RAM 0x0001 0x0057 87 1024
ROM/EPROM/FLASH 0x0000 0x0856 2135 8192
===============================================Si este artículo te ha ayudado, considera invitarme a un café o hacer una donación vía PayPal para apoyar la investigación y publicación de nuevos artículos en TechOverflow