STC8G1K08A мінімальна UART демонстрація hello world
Див. також::
- Стурбовані розміром прошивки? Перегляньте STC8G1K08A компактна 349-байтна UART демонстрація hello world
Ця мінімальна демонстрація заснована на компіляторі sdcc та бібліотеці FwLib_STC8. Вона ініціалізує UART на швидкості 115200 бод і безперервно виводить Hello, world from UART1! з наступним символом нового рядка.
main.c
#include "fw_hal.h"
/* Налаштування UART1 для звичайної відладочної консолі в стилі 8N1 на швидкості 115200 бод.
* Timer1 використовується як генератор швидкості передачі, оскільки це типове налаштування,
* яке вже використовується в інших невеликих демонстраціях у цьому репозиторії.
*/
static void UART_Init(void)
{
UART1_Config8bitUart(UART1_BaudSource_Timer1, HAL_State_ON, 115200);
}
void main(void)
{
/* Завантажити значення калібрування тактової частоти з fw_conf.h та перемкнути MCU на
* налаштовану робочу частоту до того, як будь-яка синхронізація периферії буде
* отримана з SYSCLK.
*/
SYS_SetClock();
/* Підняти UART1 один раз, щоб цикл нижче міг надсилати зрозумілий для людини вивід. */
UART_Init();
while(1)
{
/* Надіслати один NUL-термінований рядок через UART1.
* Бібліотека передає по одному байту за раз, поки не досягне '\0'.
*/
UART1_TxString("Привіт, світ з UART1!\r\n");
/* Зачекати приблизно одну секунду, щоб термінальний вивід залишався читабельним, а
* ритм повідомлень було легко перевірити на послідовному адаптері.
*/
SYS_Delay(1000);
}
}Як прошити
Див. наш пост Як прошити STC8G1K08A за допомогою stcgal
Як перевірити послідовний вивід
Перевірте вивід за допомогою
monitor.sh
picocom -b 115200 /dev/ttyUSB0Використання пам’яті
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
===============================================Якщо ця стаття допомогла вам, будь ласка, подумайте про те, щоб купити мені каву або зробити пожертву через PayPal на підтримку досліджень та публікації нових статей на TechOverflow