STC8G1K08A : Démo UART hello world minimale

Voir aussi :

Cette démo minimale est basée sur le compilateur sdcc et la bibliothèque FwLib_STC8. Elle initialise l’UART à 115200 bauds et affiche en continu Hello, world from UART1! suivi d’un saut de ligne.

main.c
#include "fw_hal.h"

/* Configurer UART1 pour une console de débogage 8N1 simple à 115200 bauds.
 * Timer1 est utilisé comme générateur de bauds car c'est la configuration par défaut
 * déjà utilisée par les autres petites démos de ce dépôt.
 */
static void UART_Init(void)
{
    UART1_Config8bitUart(UART1_BaudSource_Timer1, HAL_State_ON, 115200);
}

void main(void)
{
    /* Charger les valeurs de calibration d'horloge depuis fw_conf.h et basculer le MCU
     * à la fréquence de fonctionnement configurée avant que tout minutage de périphérique
     * ne soit dérivé de SYSCLK.
     */
    SYS_SetClock();

    /* Démarrer UART1 une fois pour que la boucle ci-dessous puisse envoyer une sortie lisible. */
    UART_Init();

    while(1)
    {
        /* Envoyer une seule chaîne terminée par NUL via UART1.
         * La bibliothèque transmet un octet à la fois jusqu'à atteindre '\0'.
         */
        UART1_TxString("Hello, world from UART1!\r\n");

        /* Attendre environ une seconde pour que la sortie du terminal reste lisible et
         * que la cadence des messages soit facile à vérifier sur un adaptateur série.
         */
        SYS_Delay(1000);
    }
}

Comment flasher

Consultez notre article How to flash STC8G1K08A using stcgal

Comment vérifier la sortie série

Vérifiez la sortie avec

monitor.sh
picocom -b 115200 /dev/ttyUSB0

Utilisation de la mémoire

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
===============================================

Check out similar posts by category: STC8, Embedded, C/C++