Научная статья на тему 'ПРЕДСТАВЛЕНИЕ И ОТОБРАЖЕНИЕ ИНФОРМАЦИИ ПРИ РАБОТЕ С МИКРОКОНТРОЛЛЕРАМИ STM32'

ПРЕДСТАВЛЕНИЕ И ОТОБРАЖЕНИЕ ИНФОРМАЦИИ ПРИ РАБОТЕ С МИКРОКОНТРОЛЛЕРАМИ STM32 Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
230
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА СЧИСЛЕНИЯ / БИТ / НИББЛ / ТЕТРАДА / БАЙТ / МИКРОКОНТРОЛЛЕР / STM32 / ТЕРМИНАЛЬНОЕ ПРИЛОЖЕНИЕ / ОТРИЦАТЕЛЬНЫЕ ЧИСЛА / ДОПОЛНИТЕЛЬНЫЙ КОД / КОДИРОВКА / ASCII / КОИ-8 / CP866 / WINDOWS-1251 / ASCII-ГРАФИКА / UTF-8 / UTF-16 / UTF-32 / ЮНИКОД / COOLTERM / ТАБЛИЦЫ КОДИРОВОК / IEC 60027-2 / ГОСТ 8.417-200

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Близнюк А.Е., Трубин В.Г., Саблина Г.В.

Статья посвящена способам представления и отображения информации при работе с микроконтроллерами семейства STM32. Описаны двоичная, шестнадцатеричная системы счисления, переменные разной длины, приведены алгоритмы перевода из одной системы счисления в другую. Рассмотрен вопрос представления отрицательных целых чисел в двоичном виде, объяснена основная причина данного способа представления. Показано, как данные хранятся в памяти микроконтроллера STM32. Описаны две программы, в которых происходит передача символов, используя кодировку ASCII, с микроконтроллера на персональный компьютер с последующим выводом их на экран. Изложенный материал может представлять интерес не только инженерам и студентам, но и читателям, которые не обладают знаниями в этой сфере.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Близнюк А.Е., Трубин В.Г., Саблина Г.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

PRESENTATION AND DISPLAY OF INFORMATION WHEN WORKING WITH STM32 MICROCONTROLLERS

The article is devoted to the ways of presenting and displaying information when working with microcontrollers of the STM32 family. Binary, hexadecimal number systems, variables of different lengths are described and translation algorithms from one number system to another are given. The question of the representation of negative integers in binary form is considered, the main reason for this method of representation is explained. It is shown how data is stored in the memory of the STM32 microcontroller, two programs in which characters are transferred from the microcontroller to a personal computer and then displayed on the screen when using ASCII encoding are presented. The presented material may be interesting not only to engineers and students, but also to readers who do not have knowledge in this field.

Текст научной работы на тему «ПРЕДСТАВЛЕНИЕ И ОТОБРАЖЕНИЕ ИНФОРМАЦИИ ПРИ РАБОТЕ С МИКРОКОНТРОЛЛЕРАМИ STM32»

Представление и отображение информации при работе с микроконтроллерами STM32

А.Е. Близнюк, В.Г. Трубин, Г.В. Саблина ФГБОУ ВПО НГТУ, г. Новосибирск, Россия

Аннотация: Статья посвящена способам представления и отображения информации при работе с микроконтроллерами семейства STM32. Описаны двоичная, шестнадцатеричная системы счисления, переменные разной длины, приведены алгоритмы перевода из одной системы счисления в другую. Рассмотрен вопрос представления отрицательных целых чисел в двоичном виде, объяснена основная причина данного способа представления. Показано, как данные хранятся в памяти микроконтроллера STM32. Описаны две программы, в которых происходит передача символов, используя кодировку ASCII, с микроконтроллера на персональный компьютер с последующим выводом их на экран. Изложенный материал может представлять интерес не только инженерам и студентам, но и читателям, которые не обладают знаниями в этой сфере.

Ключевые слова: Система счисления, бит, ниббл, тетрада, байт, микроконтроллер, STM32, терминальное приложение, отрицательные числа, дополнительный код, кодировка, ASCII, КОИ-8, CP866, Windows-1251, ASCII-графика, UTF-8, UTF-16, UTF-32, Юникод, CoolTeim, C, таблицы кодировок, IEC 60027-2, ГОСТ 8.417-200.

Способы представления данных и системы счисления

Люди привыкли к десятичной системе счисления, но в цифровых устройствах она не нашла широкого применения. Например, компьютер работает с числами так же, как и человек, но уже в двоичной системе счисления.

В процессорах цифровых устройств находится большое количество транзисторов, которые являются своего рода переключателями с двумя логическими состояниями - «1» или «0». Цифровое устройство использует для управления, хранения данных только нули и единицы.

Английское слово «bit» (бит) - сокращение от «binary digit». Здесь «digit» - это цифра, а «binary» («двоичный») - значит «состоящий из двух частей». Традиционно эти «части» обозначают как «0» и «1», но любые две чёткие альтернативы (горячий/холодный,

черный/белый) можно считать вариантами

значения бита. Один бит - это один разряд и может быть равен «0» или «1».

Например, с помощью лампочки можно передавать биты информации. Если она включена — это «1», если выключена — «0» (рис. 1).

В микросхемах электрические сигналы «логический ноль» и «логическая единица» имеют характерные уровни напряжения. Напряжение, близкое к напряжению питания, принимается за «1», а близкое к нулевому напряжению за «0».

Логика ТТЬ (транзисторно-транзисторная логика) определяет стандарт для уровня напряжения логических сигналов (рис. 2). Диапазон напряжения логического нуля или логической единицы может отличаться для разных микросхем и разных напряжений питания. Для определения реальных уровней напряжения логических сигналов необходимо обратиться к технической документации устройства.

V V V

"0" - не горит "Запрещенная комбинация" "1" - горит ярко

горит не ярко

Рис. 1 - Представление значений бита на примере лампочки

Рис. 2 - Уровни напряжений логических сигналов логики TTL

Основной единицей информации является байт, это 8 бит, идущих друг за другом (рис. 3). Байт может принимать значение от «00000000» до «11111111». Также одной из единиц измерения информации является ниббл (англ. «nibble», «nybble»), или полубайт — единица измерения информации, равная четырём битам, и удобна тем, что представима одной шестнадцатеричной цифрой, то есть является одним шестнадцатеричным разрядом. Переменная размера ниббл может принимать 16 различных значений. В русском языке используется синоним - тетрада.

Рис. 3 - Представление байта на примере лампочек

Также биты можно передавать последовательно один за другим, на рис. 4 показан пример передачи 8 бит, где каждому биту информации, в зависимости от его значения

(логический ноль или логическая единица), соответствует уровень напряжения согласно логике ТТЬ.

Рис. 4 - Пример последовательной передачи байта

Разряды в любой позиционной системе счисления считаются справа налево. Например, на рис. 5 представлено число в десятичной системе счисления, в котором самый старший разряд крайний левый в числе, а самый младший - крайний правый.

По такому же принципу распределяется старшинство разрядов в двоичной системе счисления. На рис. 6 представлена структура 32-х битного числа.

Рис. 5 - Разряды числа в десятичной системе счисления

Рис. 6 - Структура 32-битного двоичного числа

Данные в микроконтроллере хранятся в ячейках памяти побайтно. Пример скомпилированного фрагмента кода программы приведён на рис. 7. Также можно прочитать

содержимое памяти микроконтроллера с помощью программы «STM32 ST-LINK Utility». Например, на рис. 8 видно, что байт с адресом «0x8000160 + 3» = «0x8000163» имеет значение «0x08».

Рис. 7 - Скомпилированный фрагмент программы

В программах часто используются переменные, которые имеют следующие основные свойства:

1. Тип данных;

2. Размер данных.

Например, целочисленный тип данных может содержать как знаковые («int»), так и беззнаковые («uint») числа. Этот тип данных может иметь размеры 8, 16, 32 и 64 бит (табл. 1).

fi. STM32 ST-MNIK ilnl.n^

File Edit View Target STUNK External Loader Help

цц ф «- «> ъ

Memory display Device S Device ГО 0 Revision D R Flash size 1

Address: 0*08000160 » Size: 0*0908 Data Width: 8 bits ▼

Device Memory 9 0x08000160 : Binary Rie

Target memory. Address range: [0x08000160 Ox08000A68]

Address 012 3 14 15 16 17 8 1» A В с D |E F

0x08000160 |бС 03 00 08 | 00 00 00 20 |00 00 00 20 |oo 00 00 20

0x08000170 04 00 00 20 4F F0 80 42 13 8A DB 07 OB OS 13 8A

Рис. 8 - Содержимое Flash памяти микроконтроллера

Табл. 1

Целочисленные типы данных языка С для микроконтроллеров БТМ32

D5o3HQHBHue Tun донных Разрядность бит (байт) Диапазон данных

¡nie_t (char) Целочисленный знакойый тип 8 (1) - 128 ... 127

uintSJ (unsigned char) Целочисленный беззнако&ый тип 8 (1) 0 ... 255

int16_t (short") Целочисленный знако&ый тип 16 (2) - 32 768 ... 32 768

uint16J (unsigned short) Целочисленный беззнакойый тип 16 (2) 0 .. 65 535

int32 t (int) Целочисленный знако&ый тип 32 (4) - 2 147 483 648 2 147 483 647

uint32_t (unsigned int) Целочисленный 5еззнако&ый тип 32 (4) 0 ... 4 294 967 295

int32J (long) Целочисленный знако&ый тип 32 (4) - 2 147 483 648 2 147 483 647

uint32_t (unsigned long) Целочисленный 5еззнако&ый тип 32 (4) 0 ... 4 294 967 295

int64_t (long long) Целочисленный знако&ый тип Ы* (8) - 9 223 372 036 854 775 808 9 223 372 036 854 775 807

uint64_t (unsigned long long) Целочисленный беззнакойый тип 64 (8) 0 18 446 744 073 709 551 615

Просматривая значения регистров памяти микроконтроллера, можно подумать, что он управляется не только двоичной, но и десятичной, шестнадцатеричной системой счисления (далее с.с.). На самом деле внутри цифровой части микроконтроллера

используются только напряжение, близкое к 0 В (логический «0»), или напряжение, близкое к напряжению питания микроконтроллера (логическая «1»). Т.е. внутри только двоичная логика. Человеку достаточно просто ошибиться при записи, анализе большого количества нулей и единиц. Например, число «1001101001111011» очень похоже на «1001101000111011», однако это разные числа. Поэтому оказалось удобнее при выводе данных на экран, в большинстве случаев, переводить и записывать эти данные в других системах счисления. Приведённые выше числа в 16 с.с. будут соответственно «0x9 А7В» и «0х9А3В». Различие в числах видно сразу, запись выглядит короче. Частое использование 16 с.с. объясняется тем, что перевод числа в 2 с.с. и обратно осуществляется намного проще, чем из 10 с.с. в 2 с.с. и обратно.

В языке программирования Си для обозначения шестнадцатеричного числа используется префикс «0х», а для обозначения числа в двоичной системе счисления - «0Ь» (рис.

9) [1,2].

ОЫ1111111. = ОхРР

Рис. 9 - Представление числа в двоичной и шестнадцатеричной системах счисления

Далее на рис. 10-12 приведены алгоритмы перевода чисел для разных систем счисления.

Алгоритм перевода десятичного числа 6 двоичную систему счисления

1 В первой строке спра&а-налеВо записать числа 1, 2, 4, ..., где кажЭае следующее число 6 два раза больше предыдущего

2. Выбрать минимальное количество чисел из первой строки, которые в сумме давали бы исходное число.

В. Для тога, чтобы получить двоичное число необходимо под кажбым выбранным числом из первой строки написать «1», в противном случае «О»;

4. Пример перевода числа «45» из десятичной системы счисления в двоичный вид представлен ниже.

12В 64 32 16 8 4 2 1

= I Ф I * 0 0 10 110 1,

Алгоритм перевода двоичного числа 6 десятичную систему счисления

1 Справа-налево под каждым Витом двоичного числа записать число 1, 2, 4, ..., гЗе каждое следующее записанное число в два раза больше предыдущего

2. Во Второй строке выбрать и сложить те числа, которые находятся под битами, которые равны «1»

В. Полученная сумма является исходным числом в десятичной системе счисления;

4 Пример перевода двоичного числа «00101101» в десятичную систему счисления предста&лен ниже.

0 0 10 110 1, _ —АС

128 64 32 16 8 4 2 1 ~ 32+8+4+1 — 4510

Рис. 11 - Алгоритм перевода числа из двоичной системы счисления в десятичную

Соответствие чисел в двоичной и шестнадцатеричной системах счисления представлены в табл. 2.

Алгоритм перевода двоичного числа в шестнадцатеричную систему счисления

1 Дополнить число слева битами «О», пока число разрядов не станет кратно восьми.

2. Разделить получившееся число на группы по 4 бита (тетрады).

3. Опираясь на таблицу 2, заменить тетрады на соответствующие им значения в шестнадцатеричной системе счисления;

4. Пример перевода двоичного числа «101101» в шестнадцатеричную систему счисления приведен ниже

1011012 = 001011012 = 0010 11012 = 2D16

21б D16

Рис. 12 - Алгоритм перевода числа из двоичной системы счисления в шестнадцатеричную

Табл. 2

Соответствие чисел в двоичной и шестнадцатеричной системах счисления

Рис. 10 - Алгоритм перевода числа из десятичной системы счисления в двоичную

Шестнадцатиричная система счисления Двоичная система счисления Шестнавцатеричная система счисления ДЬоичная система счисления

0 QQ0D 8 1000

1 0001 9 1001

2 0010 А 1010

3 0011 В 1011

4 0100 С 1100

5 0101 □ 1101

6 0110 Е 1110

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

7 0111 F 1111

Необходимо понимать, что система счисления - это метод записи чисел. Арифметические операции справедливы для всех систем счисления, а значит, что полученные результаты после операций над числами в одной системе счисления будут равнозначны результатам, полученным в другой системе счисления.

На рис. 13 приведена операция сложения чисел «45» и «14» в разных системах счисления.

+ 4 5 10 14 ю

,0010 = 0 0 0 0

1 1 О 1 2 11102

5 9

ю

00111011

+ 2D 16 _ Е 16

Рис. 13 - Операции над числами в разных системах счисления

Для сложения двоичных чисел используется устройство, которое называется «сумматор». Разработчики для выполнения операции «разность», не стали вводить новое устройство -«вычитатель», а предложили способ представления двоичного числа в дополнительном коде. Данный способ даёт возможность представить число в отрицательном виде, что в свою очередь позволяет использовать для суммирования и вычитания чисел одно и то же устройство «сумматор».

C^j Алгоритм получения отрицательного ЭВоичного числа

1. Ин&ертироВать биты ЭВоичного числа;

2. ПриВайить к получившемуся числу «0...00001».

3.Пример получения отрицательного ЭВоичного числа пребставлен ниже

1ШШГ 1110010 0-,

+0 О О О О О О 1,

1110010 1,

Рис. 14 - Алгоритм получения отрицательного двоичного числа

При использовании сумматора проверим правильность операции, отняв число «27» от «28». Результат представлен на рис. 15.

Рис. 15 - Операция разности в двоичной и десятичной системе счисления

В ходе развития информационных технологий начали появляться крупные массивы информации, что требовало ввести новые единицы измерения её объемов. Тогда была введена приставка «К» для обозначения 1024

байт (210 байт). Но, в связи с тем, что люди начали использовать приставки системы измерения СИ, появилась неопределённость в понимании единиц измерения данных [3]. И поэтому в 1999 году Международная электротехническая комиссия (МЭК) ввела стандарт IEC 60027-2 с приставками для обозначения количества информации (табл. 3) [4].

Впоследствии Российской Федерацией был утвержден ГОСТ 8.417-2002, который разрешил приставки из системы СИ, а также определил размеры единиц в зависимости от префикса [5].

«Положение о единицах величин, допускаемых к применению в Российской Федерации», утверждённое Правительством РФ 31 октября 2009 года дублирует ГОСТ 8.4172002, а также допускает применение международного обозначения единицы информации с приставками «К», «М», «G» (KB, MB, GB, Kbyte, Mbyte, Gbyte) [6]. Но, несмотря на утверждённые ГОСТы и стандарты, на текущее время до сих пор сохраняется «путаница» в использовании терминов.

Табл. 3

Префиксы для двоичных единиц измерения

Множитель Название приставки Символ

2io киЕи Ki(Ku)

220 меби Mi(Mu)

2 зо zu5u Gi(Tu)

2^0 те5и Ti(Tu)

250 neEu РКПи)

2бо эксби EiOu)

270 эеби Zi(3u)

280 йоЕи Yi(Mu)

Кодирование символов

По умолчанию цифровое устройство способно понимать только двоичный код. Как было упомянуто ранее, бит имеет два значения: «1» или «0». И каждому символу, который выводится на экран, соответствует определенная комбинация нулей и единиц - код символа. Совокупность таких кодов называется кодировкой. Одной из таких кодировок является ASCII, которую можно считать прародителем всех современных кодировок.

Эта аббревиатура расшифровывается как «American Standard Code for Information Interchange» - американская стандартная кодировочная таблица для печатных символов и некоторых специальных кодов.

Кодировка ASCII была разработана в 1963 году Американской Ассоциацией Стандартов (которая позже стала «Американским Национальным Институтом Стандартов» -ANSI). Кодировка несколько раз обновлялась - в 1967 и 1986 годах [7].

ASCII - это таблица кодировки символов, в которой каждой букве, цифре или знаку присвоено определённое число. Изначально

ASCII являлась 7-битной кодировкой, включающей в себя 128 символов: 33 непечатных управляющих символа, влияющих на обработку текста и пробелов, и 95 печатных символов, включая цифры, буквы латинского алфавита в строчном и прописном вариантах, ряд пунктуационных символов (табл. 5 - 6).

Первые тридцать два символа в ASCII-таблице являются управляющими символами, и не имеют печатного отображения. Например, символ с кодом 10 (столбец «DEC») осуществляет перевод строки, а с помощью символа с кодом 7 (столбец «DEC») происходит вызов звукового сигнала системного динамика.

В 1990 году Андрей Чернов разработал кодировку КОИ-8 [8]. Разработчики КОИ-8 присвоили символам русского алфавита коды из диапазона 159 - 255. Таким образом, получилось, что позиции символов кириллицы соответствуют их фонетическим аналогам в английском алфавите из нижней части таблицы. Это означает, что если в тексте, написанном в КОИ8, для каждого символа убрать по одному биту слева, то получится относительно читаемый текст, подобный транслиту. Например, слова «Русский Текст» превратятся в «rUSSKIJ tEKST». Поэтому символы кириллицы в таблице расположены не в алфавитном порядке.

Существует несколько вариантов кодировки КОИ-8 для различных кириллических алфавитов. Русский алфавит описывается в кодировке KO^-R (табл. 7 - 8), украинский — в KOm-U, таджикский — в KOm-T.

В КОШ-R символы с кодами 0 - 127 совпадают с ASCII-таблицей, а символы кириллицы содержатся в диапазоне кодов 163 -255.

До появления Windows для работы в DOS применялась кодировка CP866 (табл. 9 - 10) [9]. Символы кодировки CP866 в диапазоне от 0 до 127 (столбец «DEC») полностью соответствуют ASCII кодировке. Далее, кодировка, в диапазоне от 128 до 255 (столбец «DEC») содержит символы кириллицы и символы псевдографики, благодаря которым можно было выводить на экран (с определёнными ограничениями) различные рисунки, картинки, не переходя в графический режим. Ярким примером качественной визуализации информации с помощью псевдографики является

отечественный текстовый редактор Lexicon [10]. С кодировкой CP866 можно встретиться и сейчас, открыв командную строку. Для просмотра используемой кодировки в командной с9троке, необходимо выполнить команду «chcp». (рис. 16). Согласно идентификаторам, приведенным на официальном сайте Microsoft [11], выведенное значение «866» соответствует кодировке CP866.

Microsoft Windows [Version 10.0.19044.2251] Л

(с) Корпорация Майкрософт (Microsoft Corporation).

Рис. 16 - Командная строка Windows

Следующим шагом в развитии кодировок можно считать появление так называемых ANSI-кодировок.

Это были те же расширенные версии ASCII, однако из них были удалены различные псевдографические элементы и добавлены символы типографики, для которых ранее не хватало «свободных мест».

Примером такой ANSI-кодировки является всем известная «Windows-1251 » (табл. 11 - 12), которая содержит в себе символы кириллицы [12].

ANSI-кодировка — это собирательное название. В действительности, реальная кодировка при использовании ANSI будет определяться тем, что указано в реестре вашей операционной системы Windows. В случае с русским языком это будет «Windows-1251», однако, для других языков это будет другая разновидность ANSI.

Для того чтобы понять, какая кодировка используется на вашей операционной системе Windows, необходимо:

- вызвать диалоговое окно «Выполнить» с помощью комбинации клавиш «Win+R»;

- выполнить команду «regedit», написав ее в текстовое поле «Открыть» (рис. 17).

tS Выполнить X

Ш Введите имя программы, папки, документа или ресурса Интернета, которые требуется открыть.

Открыть: | гедес!й V |

ОК | Отмена Обзор...

Рис. 17 - Диалоговое окно «Выполнить»

Для того, чтобы узнать используемую кодировку, необходимо открыть в появившемся окне папку «CodePage», расположенную по следующему пути (рис. 18).

Компьютер HKEY_LDCAL_MACHINE -> SYSTEM -> —> CurrenfControlSet —> Control —» Nls —► CodePagE

Рис. 18 - Путь к папке для просмотра используемой кодировки

В данной папке в правой стороне окна необходимо найти параметр «ACP», который содержит в себе идентификатор используемой

кодировки (рис. 19). Данные идентификаторы представлены на официальном сайте Microsoft [13]. В столбце «Значение» для параметра ACP указано «1251», что соответствует кодировке

Windows-1251.

I Редактор реестра

¡йл Правка Вид Избранное Справк

KoMnbK>iep\HKEY_LOCAL_MACHIIME\SYSTEM\CurrentControlSet\Control\Mls\CodePage

I Компьютер '

HKEY_CLASSES_ROOT НКЕУ_С ÖRRENTJJ SER HKEY_LOCAL_MACHINE

> BCDOOOOOOOO

> |_ HARDWARE

> SAM SECURITY

> SOFTWARE

v SYSTEM

ActivationBroker > Q ControlSetOOl v CurrentControlSet Control

{7746D80F-97E AccessibilitySf "i

Имя Тип Значение

^869 REG SZ с 869.nls

".'■I 370 REG SZ с 870.nls

*'_ь 1874 REG SZ с 874.nls

REG SZ с 875.(*

-Jtlj 932 REG SZ с 932,nls

^]936 REG SZ с 936.nls

i!>]949 REG SZ с 949.nls

REG SZ с 950.nls

_?УАСР REG SZ 1251

AI 1 owDeprecate,, REG DWORD 0x42414421 (1111573537)

^QMACCP REG SZ 10007

-Ь] OEM CP REG SZ 866

^OEMHAL REG.SZ vgaoem.fon

Рис. 19 - Значение параметра «ACP» в реестре операционной системы

Стандарт Unicode был предложен в 1991 году некоммерческой организацией «Консорциум Юникода» («Unicode Consortium», «Unicode Inc.»), и первым результатом его работы стало создание кодировки UTF-32 [13]. Unicode - это таблица соответствия символов и чисел, а различные UTF-кодировки определяют, как эти числа переводятся в байты.

В UTF-32 для кодирования одного символа предполагалось использовать целых 32 бита, т.е. 4 байта информации. На смену ей пришла новая разработка - UTF-16.

Из названия следует, что в этой кодировке один символ кодируется уже не 32 битами, а только 16 (т.е. 2 байта). Это позволило сделать любой символ вдвое "легче", чем в UTF-32.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Следующим шагом было введение новой кодировки UTF-8. Для кодирования одного символа в этой кодировке используется от 1 до 4 байт. Стандарт Юникод присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом «U+», например, «U+040F». Коды в стандарте Юникод разделены на несколько областей. Область с кодами от «U+0000» до «U+007F» содержит символы набора ASCII, и коды этих символов совпадают с их кодами в ASCII. Далее расположены области символов других систем письменности, знаки пунктуации и технические символы. Часть кодов зарезервирована для использования в будущем. В зависимости от того, к какой области относится символ, выбирается необходимое количество байт для его кодировки (табл. 4). Так, например, для кодирования символов кириллицы необходимо 2 байта, так как данные символы находятся в промежутке «U+0400 - U+04FF».

Табл. 4

Соотношение диапазона кодов и количества байтов необходимого для кодирования

Диапазон коЗаВ Необходимое количество öaiimoB Зля коЗиробания

U+00000000 ... U+0000007F 1

U + 0000008Q ... U+000007FF 2

U+00000800 .. U+0000FFFF 3

U+OÛOWCIOO ... U+0010FFFF и

Таким образом, была получена универсальная кодировка, позволяющая охватить все возможные символы, которые требуется отобразить, не "утяжеляя" без необходимости файлы.

ASCII-графика

Помимо вывода текстовой информации на экран ASCII кодировка также применяется в графике. В ASCII-графике символы будто представляют собой штрихи на картине, каждый из которых имеет уникальную форму и несёт свою смысловую нагрузку.

Первые поколения компьютеров не имели возможности отображать графические изображения. Поэтому программисты заинтересовались возможностью представления графики с помощью текстовых символов и вывода полученных изображений на экран терминала и устройство печати. Начиная с 1960-х годов, создание программы, которая «рисует» заданное изображение текстовыми символами, было популярным развлечением программистов. Для примера, на рис. 20 представлено изображение в формате ASCII-графики.

Сейчас существует большое количество программ и онлайн сервисов, которые предоставляют возможность конвертировать любое заданное изображение в рисунок, состоящий из ASCII символов.

Рис. 20 - Изображение, созданное из ASCII символов

Вывод данных на экран

На рис. 21 приведена структурная схема системы, позволяющая передать данные от микроконтроллера к компьютеру с выводом информации на экран.

На рис. 22 рассмотрен фрагмент программы для микроконтроллера, который выводит символы «АААА...ААА» на экран персонального компьютера.

В данной программе, после отправки символа с микроконтроллера, необходимо вставить задержку по времени. Это связано с тем, что команда отправки символа расположена в бесконечном цикле. Отправка данных без

задержки приведет к слишком большому потоку отправляемых символов, что может вызвать зависание систем.

int main(void){

uint8_t symbol = 0x41; // 'A'

while < ){

USART1->DR = symbol; delay_ms < );

}

Рис. 22 - Программа по отправке символов «АЛЛА.. .АЛЛ» на компьютер

Персональный компьютер

Микроконтроллер

01000001

RS-232

Тх

X"

Rx

OlOOOOOl]

Плата

Rx

fx

Тх

RS-232

USB

ÍТерминальное приложение

DfilH > *

New Орел Save Connect

AAAAAAAAA

У

Рис. 21 - Структурная схема системы передачи данных между микроконтроллером STM32 и персональным

компьютером

После загрузки программы в микроконтроллер необходимо установить соединение устройства с терминальным приложением. В данном примере используется терминальное приложение «CoolTerm» (рис. 23) [14]. Для этого установим необходимый COM-порт. Открыв раздел «Options» выберем из выпадающего списка используемый порт (рис. 24).

Для того, чтобы узнать какой COM-порт использует устройство, необходимо открыть «Диспетчер устройств». Открывается он следующим образом:

1. Нажать на значок «Компьютер», в проводнике или на рабочем столе, правой кнопкой мыши и выбрать «Свойства» (рис. 25).

2. Выбрать пункт «Диспетчер устройств» в открывшемся окне.

File Edit Connection Micros View Remote Window Help

D SiH New Open Save Connect m Disconnect Ж Clear Data % Options 0 View Hex

No Seria Ports found

Disconnected О =Л

Рис. 23 - Терминальное приложение «CoolTerm»

Connection Options (Untitled_0)

Serial Port Options

Terminal Receive Transmit Fonts Miscellaneous Port: COM3 v| П

Baudrate 9600 v] Data Bits: [в

Рис. 24 - Выбор COM-порта в настройках терминального приложения

v О Этот компьютер

> 5 Видео Свернуть

> [^j Документы Управление

> -ф- Загрузки Закрепить на началь

> [Ё Изображения Подключить сетевой

J) Музыка Открыть в новом окн

Объемные объе > Н Рабочий стол Закрепить на панели Отключить сетевой д

> Локальный диен Добавить новый элег

> _ HDD (D:) Удалить

> Сеть Переименовать

Свойства

Рис. 25 - Путь к диспетчеру устройств

Для просмотра используемых портов в «Диспетчере устройств» необходимо перейти в

раздел «COM и LPT», где и содержится информация о всех используемых COM-портах (рис. 26).

Е> -Щ1 Переносные устройства * Щ Порты (СОМ и LPT)

Prolific USB-to-Senal Comm Port (COM2) '7 Последовательный порт (COMI) Q Процессоры_

Рис. 26 - Информация о COM-портах в «Диспетчере устройств»

После выбора требуемого COM-порта, нажав «Connect», установим соединение (рис. 23).

Далее, в разделе «Options», необходимо настроить кодировку в терминальном приложении, выбрав кодировку «ASCII» (рис. 27).

После установления соединения и настройки кодировки необходимо запустить выполнение программы на микроконтроллере.

На рис. 28 представлено отображение символов «АААА...ААА» в терминальном приложении.

Connection Options (Untitled_0]

Serial Port

Terminal

Receive Transmit Fonts

Miscellaneous

CR+LF

001B

Terminal Options

Terminal Mode: ® Raw Mode

O Line Mode

Enter Key Emulation:

Custom Sequence (Hex):

□ Local Echo

I I Replace TAG key with spaces

No. of spaces: | 4

Special Character Handling

□ Foimat TAB separated text

Column width: 5

I Replace consectrtrve spaces with TAB Min. number of spaces: 1

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

□ Filter ASCII Escape Sequences

0 Convert Non-printable Characters

□ Remove High Bit from 3-bit Characters

□ Handle BS and DEL Characters

□ Handle Bell Character

1 I Handle Form Feed Character

□ Handle End Of Text Character I I Ignore Line Feed Character

I I Combine contiguous Carriage Returns I I Handle CR as real Carriage Return

Text Encoding: ASCII

Cancel I OK 1

Рис. 27 - Выбор кодировки в настройках терминального приложения

Рис. 28 - Принятые символы в терминальном приложении

Далее реализуем программу, которая бы выводила слово «Бит» с символом «!» (рис. 29). В данной программе отправка осуществляется в главной функции программы. Возможны ситуации, когда в терминальном приложении может отобразиться только часть информации или она вообще не будет выведена. Данная особенность может произойти из-за того, что программа в микроконтроллере уже выполнилась до того, как была установлена связь устройства и терминального приложения.

В программе для микроконтроллера важно использовать бесконечный цикл «while». Данный цикл необходим для того, чтобы выполнение программы оставалось в границах главной функции «main». При отсутствии цикла «while», в данной программе, после выполнения написанного кода, микроконтроллер выйдет за рамки главного цикла «main». Далее он начнёт выполнять команды в следующих ячейках памяти, значение которых нам неизвестно, а значит и поведение устройства будет непредсказуемым.

int main(void){

uint8_t symbol [ ] = { ixF2 ,

USART 1->DR = symbol[ ]; //т Б 1 delay_ms( );

USART1->DR = symbol[ ]; //'и' delayms( );

USART1->DR = symbol[ ]; //'т' delayms(1С);

U SART 1->DR = symbol[ ]; //'!' delay_ms( );

'} ;

while( ){ }

}

Рис. 29 - Программа по отправке слова «Бит!» на компьютер

На рис. 30 представлено отображение слово «Бит!» в терминальном приложении.

Рис. 30 - Принятое слово «Бит!»

Таблицы кодировок

Табл. 5

Кодировка. 1ЛТУ/ (символы с кодами 0-31, 127)

□ЕС HEX Символ Описание □ЕС HEX СимВол Описание

0 0x00 NUL Нулевой байт 17 0x11 □С1 1-й сим&ол управления устройством

1 0x01 SOH Начало заголобка 18 0x12 DE2 2-0 симбол управления устройством

2 0x02 STX Начало текста 19 0x13 DE3 3-0 симбол управления устройством

3 0x03 ЕТХ Конец текста 20 0x14 DC4 4.-й сим&ол упра&ления устройством

К ОхОД EOT Конец передачи 21 0x15 NAK Не подтверждаю!

5 0x05 ENQ Прошу подтверждения! 11 0x16 SYN Симбол для синхронизации

6 0x06 АСК Подтверждаю! 23 0x17 ЕТВ Конец текстобого блока

7 0x07 BEL З&укоВои сигнал - З&ОНОК lh 0x18 CAN Отмена

8 0x08 BS Возбрат на один сим&ол 25 0x19 ЕМ Конец носителя

9 0x09 нт Табуляция 26 0x1 А SUB ПодстаВить

10 ОхОА LF ПереВод строки 27 0x1В ESC Escape (расширение)

11 0x0В VT Вертикальная табуляция 28 0x1(1 FS Разделитель файлоб

12 ОхОС FF Прогон страницы, но&ая страница 29 0x1D GS Разделитель групп

13 OxOD CR Воз&рат каретки 30 0х1Е RS Разделитель записей

14 ОхОЕ SO Переключиться на другую кодировку 31 0x1F US Разделитель юнитоВ

15 OxOF SI Переключиться на исходную кодировку 127 0x7F Delete Сим&ол для удаления (на перфолентах}

16 0x10 DLE Зкраниро&ание канала данных

Кодировка. 1ЛТ'// (символы с кодами 32 - 126)

DEC HEX Символ DEE HEX Символ DEE HEX Символ DEC HEX Символ

32 0x20 Пробел 56 0x38 8 80 0x50 Р 10А ЭхбЗ h

33 0x21 ! 57 0x39 9 81 0x51 Q 105 0x69 i

ЗА 0x22 и 58 ЭхЗА 82 0x52 R 106 ОхбА J

35 0x23 # 59 ОхЗВ * 83 0x53 S 107 ЭхбЗ k

36 D\2A $ 60 ОхЗС < ЗА Эх5А Т 103 ОхбС L

37 0x25 % 61 0x3D - 85 0x55 и 109 Dx6Il m

33 0x26 & 62 ОхЗЕ > 86 0x56 V 110 ОхбЕ n

39 0x27 i 63 0x3F 1 87 0x57 W 111 0x6F 0

AO 3*23 ( 6A 0хА0 @ 33 >55 X 112 0x70 P

ai 0x29 } 65 0хА1 А 89 0x59 Y 113 0x71 q

A2 0x2A * 66 0хА2 В 90 0х5А Z 11А 0x72 г

A3 D\2B + 67 ОхАЗ С 91 3x53 [ 115 0x73 5

At 0x2C 1 68 ЭхАА D 92 0х5С \ 11Й Эх7А t

А5 0x2D - 69 0хА5 Е 93 3x5Il ] 117 0x75 u

Ай 0x2E 70 ОхАб F 9А 0х5Е 113 0x76 v

А7 0x2F / 71 0хА7 G 95 0x5F _ 119 0x77 w

a3 0x30 0 72 ЭхАЗ Н 96 0x60 - 120 3x73 X

А9 0x31 1 73 0хА9 1 97 0x61 а 121 0x79 У

50 0x32 2 7A ОхАА J 98 0x62 Ь 122 0x7A z

51 0x33 3 75 ЭхАВ К 99 0x63 с 123 3x73 {

52 MA и 76 ОхАС L 100 ЭхбА d 12А 0x7C I

53 0x35 5 77 DxAD М 101 0x65 9 125 Dx7Il }

5А 0x36 6 78 ОхАЕ N 102 0x66 f 12й 0x7E

55 0x37 7 79 OxAF 0 103 0x67 д

Кодировка КОП8-К (символы с кодами 128 - 193)

DEC HEX Символ DEC HEX Символ DEC HEX Символ

126 0x60 — 1EC 0x96 -V 172 DxAC

129 0x61 1E1 0x97 s 173 OxAD л

130 0x62 Г 1E2 0x9S 17- DxAE Jl

131 0x63 1 153 0x99 175 DxAF h

132 Dx&4 L 15- 0x9A 176 OxBO Ih

133 0x65 J 155 0x9B J 177 0xB1 lb

134 0x66 h 156 0x9C □ 17S 0xB2 H

133 0x67 H 157 0x9D 2 179 ОхВЗ Ё

136 DxSS T 15S 0x9E ■ 1S0 3xB4 11

137 0x69 _L 159 0x9F 1S1 0xB5 il

136 0x6A + 16C OxAC = 1S2 0xB6 T

139 Dx&B ■ 161 0xA1 1 1S3 0xB7 1Г

140 0x6C ■ 162 0xA2 r 164 DxBB If

141 Dx&D 1 163 OxAB 9 1S5 0xB9 _L

142 0x6E 1 16^ OxA^ IT 1S6 OxBA JL

143 0x6F 1 165 0xA5 If 1S7 DxBB JL

144 3x90 166 0xA6 =l 166 OxBC -H-

145 0x91 iffia v.r.v, :■:■!■:■:■ sws 167 0xA7 l 1S9 DxBD i

146 3x92 1 16S OxAS Tl 19C OxBE JL 1Г

147 3x93 Г 169 0xA9 1= 191 OxBF ©

14S 0x94 ■ 17C OxAA IL 192 DxCO Ю

149 3x95 ■ 171 OxAB It 193 DxCI Q

Кодировка КОП8-К (символы с кодами 194 - 255)

□ЕС HEX Символ DEC HEX Символ DEC HEX Символ

194 0хС2 б 215 0x07 a 236 OxEC Л

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

195 ОхСЗ и 215 OxDS ь 237 ЗхЕЗ м

195 3x14 а 217 0x09 Ы 238 OxEE н

197 0хС5 е 216 OxDA 3 239 OxEF 0

196 ОхСб Ф 219 OxDB Ш 240 OxFO п

199 0хС7 г 223 OxDC 3 241 OxF1 я

233 3xIS X 221 OxDD Щ 242 0xF2 р

201 0хС9 и 222 OxDE 4 243 0xF3 с

232 ОхСА й 223 OxDF b 244 3x=4 т

233 3x13 к 224 OxEO Ю 245 0xF5 У

204 ОхСС л 225 OxEl A 246 0xF6 ж

235 3x13 м 225 0xE2 Б 247 OxF7 в

235 ОхСЕ н 227 ОхЕЗ Ц 243 3x=S ь

237 OxCF □ 226 0xE4 Д 249 0xF9 ы

206 3x33 п 229 0xE5 E 250 OxFA 3

239 3x31 я 233 0xE6 Ф 251 3x=3 ш

213 3x32 р 231 0xE7 Г 252 OxFC 3

211 3x33 с 232 OxES X 253 OxFD щ

212 0xD4 m 233 0xE9 И 254 OxFE ч

213 3x35 У 234 OxEA Й 255 OxFF ъ

214 3x35 ж 235 OxEB к

Кодировка СР866 (символы с кодами 128 - 193)

□ЕС HEX СимЬол DEC HEX Симйол DEC HEX Сим&ол

128 0x80 А 150 0x96 ц 172 ОхАС М

129 0x81 Б 151 0x97 ч 173 ОхАО н

130 0x82 В 152 0x98 ш 174 ОхАЕ 0

131 0x83 д 153 0x99 щ 175 OxAF п

132 0x84 Е 154 0х9А ъ 176 ОхВО

133 0x85 Ж 155 Сх9В ы 177 0 к В1

134 0x86 3 156 0х9С ь 178 0хВ2 I

135 0x87 и 157 0x9D 3 179 ОхВЗ I

136 0x88 й 158 0х9Е ю 180 0хВ4

137 0x89 к 159 0x9F я 181 0хВ5 н

138 0х8А к 160 0кА0 Q 182 ОхВб i

139 0x8В л 161 0хА1 5 183 0хВ7 "П

140 0х8С м 162 0хА2 6 184 0хВ8 =1

141 0x8D н 163 ОхАЗ г 185 0хВ9

142 0х8Е 0 164 0хА4 3 186 ОхВА

143 0x8F п 165 0хА5 е 187 ОхВВ =П

144 0x90 р 166 ОхАб ж 188 ОхВС =У

145 0x91 с 167 Ox А7 3 189 OxBD J

146 0x92 т 168 0хА8 и 190 ОхВЕ =1

147 0x93 У 169 0хА9 й 191 OxBF п

148 0x94 ф 170 Ох АА к 192 ОхСО L

149 0x95 X 171 ОхАВ п 193 0хС1 _L

Табл. 10

Кодировка СР866 (символы с кодами 194 - 255)

□ЕС HEX Символ □EC HEX Символ DEC HEX Символ

194 0хС2 T 215 0xD7 -1 236 OxEC b

195 ОхЕЗ h 216 0xD8 * 237 OxED Э

196 0хС4 — 217 0xD9 j 238 OxEE Ю

197 0хС5 + 213 OxDA г 239 OxEF я

198 0хЕ6 h 219 OxDB ■ 240 OxFO Ё

199 0хС7 Ih 220 OxDC 241 OxF1 ё

200 0хС8 Ik 221 OxDD 1 242 0xF2 E

201 0хЕ9 (r 222 OxDE 1 243 0xF3 €

202 ОхЕА JL 223 OxDF ■ 244 0xF4 I

203 □xCD ТГ 224 OxEO P 245 0xF5 T

204 ОхЕС Ih 225 0xE1 С 246 0xF6 V У

205 OxCD — 226 0xE2 m 247 0xF7 w У

206 ОхСЕ JL "1Г 227 ОхЕЗ У 246 0xF6 о

207 OxEF _L 226 0xE4 Ф 249 0xF9

206 0xD0 JL 229 0xE5 X 250 OxFA

209 0xD1 т 230 0xE6 ц 251 OxFD V

210 0xD2 IT 231 0xE7 4 252 OxFC

211 0xD3 1L 232 0xE6 Ш 253 DxFD п

212 0xD4 L 233 0xE9 Щ 254 OxFE ■

213 QxD5 F 234 OxEA ъ 255 OxFF Неразрывный пробел

214 0xD6 IT 235 OxED ы

Табл. 11

Кодировка 11Ъ1с/(»\\\-1251 (символы с кодами 128 - 193)

DEL HEX Символ □ЕЕ HEX Символ □ЕЕ HEX Символ

128 0x80 ъ 150 0x96 — 172 ОхАС -1

129 0x81 г 151 0x97 — 173 ОхАО Мягкий перэнос

130 0x82 ? 152 0x98 Начало строки 174 ОхАЕ ®

131 0x83 г г 153 0x99 ТМ 175 OxAF т

132 0x84 rr 154 0x9 А /ъ 176 ОхВО о

133 0x85 155 0x9В > 177 0хВ1 +

134 0x86 t 156 0x9 С hb 170 0хВ2 1

135 0x87 t 157 0x9D К 179 ОхВЗ i

136 0x88 € 150 0x9 Е h 180 0хВ4 г

137 0x89 о/ /о о 159 0x9 F М 181 0хВ5 м

138 ОхбД 1Ъ 160 ОхАО Н9раэры&ный пробел 182 ОхВб 11

139 0x8В < 161 Ох Д1 У 183 ОхВ 7

140 0x8C Н> 162 0хА2 и У 184 0хВ8 Ё

141 0x8D К 163 ОхАЗ J 185 ОхВ 9 №

142 0x8E Ti 164 0хА4 н 186 ОхВД с

143 0x8F и 165 0хА5 г 187 ОхВВ »

144 0x90 Ъ 166 ОхАб ! 188 ОхВ С j

145 0x91 с 167 0хА7 5 189 OxBD S

146 0x92 т 160 0хА8 Ё 190 ОхВЕ s

147 0x93 it 169 0хА9 © 191 ОхВ F Т

148 0x94 п 170 ОхАА Е 192 ОхСО А

149 0x95 • 171 ОхАВ « 193 0хЕ1 5

Табл. 12

Кодировка 11Ъ1с/(»\\\-1251 (символы с кодами 194 - 255)

ПЕС HEX Символ □ЕЕ HEX Сим С o/i DEC HEX E им 6 o/i

194 0к С 2 Б 215 0хЕ)7 4 236 ОхЕЕ M

195 ОхЕЗ Г 216 0xD8 Ш 237 OxED H

196 0хС4 Д 217 0x09 Щ 238 ОхЕЕ О

197 0хС5 Е 218 OxDA Ъ 239 OxEF n

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

198 0хЕ6 Ж 219 OxDB ы 240 OxFO P

199 0хЕ7 3 220 ОхОС b 241 □xF 1 С

200 охсе И 221 OxDD 3 242 0xF2 m

201 0хЕ9 Й 222 ОхОЕ ю 243 0xF3 У

202 Ох С А К 223 OxOF я 244 0xF4 Ф

203 ОхСВ Л 224 OxEO а 245 0xF5 X

го CD f- ОхЕЕ м 225 0xE1 5 246 0xF6 и

205 OxCD и 226 0xE2 & 247 0xF7 ч

206 ОхЕЕ 0 227 ОхЕЗ г 248 0xF8 Lii

207 OxEF п 22В 0xE4 3 249 0xF9 111

208 OxDO р 229 0xE5 G 250 OxFA b

209 0xD1 Е 230 0xE6 Ж 251 OxFEl ы

210 0xD2 Т 231 0xE7 3 252 OxFE b

211 0xD3 У 232 0xE8 U 253 OxFD э

212 QxD4 ф 233 0xE9 й 254 OxFE ю

213 0xD5 X 234 OxEA к 255 OxFF я

214 0xD6 ц 235 OxEB л

Заключение

В данной статье рассмотрены способы представления и отображения информации при работе с микроконтроллерами семейства STM32. По результатам работы можно сделать следующие основные выводы:

Цифровые устройства для управления, при хранении данных используют исключительно

нули и единицы. Другие системы счисления (8 с.с., 10 с.с., 16 с.с.) используются при отображении для облегчения процесса восприятия данной информации.

Система счисления - это метод записи чисел, поэтому результаты арифметических операций в одной системе счисления будут равнозначны результатам в другой системе счисления.

Для отображения информации на экране монитора и т.п. существуют перекодировочные таблицы, где приведены соответствия между двоичными данными и символами, цифрами, буквами. При получении таких двоичных данных устройство отображения выводит соответствующие символы, цифры, буквы, которые и воспринимает человек.

Литература

[1] Шестнадцатеричная система счисления. [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Шестнадцатеричн ая_система_счисления

[2] Двоичная система счисления. [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Двоичная_систем а_счисления

[3] Сколько байтов в килобайте? [Электронный ресурс]. Режим доступа: https://www.artlebedev.ru/kovodstvo/sections/8 4

[4] ГОСТ IEC 60027-2— 2015. [Электронный ресурс]. Режим доступа: https://files.stroyinf.ru/Data2/1/4293758/429375 8971.pdf

[5] ГОСТ 8.417-2002. [Электронный ресурс]. Режим доступа: https://astro.insma.urfu.ru/sites/default/files/upl oad_files/doc/gost_8.417-2002.pdf

[6] "Об утверждении Положения о единицах величин, допускаемых к применению в Российской Федерации". [Электронный ресурс]. Режим доступа: https://base.garant.ru/196573/?ysclid=ladx35a0 73471909821

[7] ASCII. [Электронный ресурс]. Режим доступа: https ://ru.wikipedia.org/wiki/ASCII

[8] КОИ-8. [Электронный ресурс]. Режим доступа: https ://ru.wikipedia.org/wiki/KD^8

[9] CP866. [Электронный ресурс]. Режим доступа: https ://ru.wikipedia.org/wiki/CP866

[10] Лексикон (программа). [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Лексикон_(прогр амма)

[11] Идентификаторы кодовой страницы. [Электронный ресурс]. Режим доступа: https://learn.microsoft.com/ru-ru/windows/win32/intl/code-page-identifiers

[12] Windows-1251. [Электронный ресурс]. Режим доступа:

https://ru.wikipedia.org/wiki/Windows-1251

[13] Юникод. [Электронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Юникод

[14] Терминальное приложение «CoolTerm». [Электронный ресурс]. Режим доступа: https://coolterm.en.lo4d.com/windows

Александр Евгеньевич Близнюк - магистрант группы ААМ-21 кафедры Автоматики НГТУ. Автор трёх научных работ. E-mail:

bliznyuksaha@mail.ru

Виталий Геннадьевич Трубин - старший преподаватель кафедры Автоматики НГТУ,

директор ООО «КБ Автоматика». Автор более 50 научных и учебных работ.

E-mail: trubin@ngs.ru

Галина Владимировна Саблина - доцент кафедры Автоматики НГТУ,

кандидат технических наук. Автор более 40 научных и учебных работ. E-mail: sablina@corp. nstu.ru

Статья поступила 10.11.2022.

Presentation and Display of Information when Working with

STM32 Microcontrollers

A.E. Bliznyuk, V.G. Trubin, G.V. Sablina Novosibirsk State Technical University, Novosibirsk, Russia

Abstract: The article is devoted to the ways of presenting and displaying information when working with microcontrollers of the STM32 family. Binary, hexadecimal number systems, variables of different lengths are described and translation algorithms from one number system to another are given. The question of the representation of negative integers in binary form is considered, the main reason for this method of representation is explained. It is shown how data is stored in the memory of the STM32 microcontroller, two programs in which characters are transferred from the microcontroller to a personal computer

and then displayed on the screen when using ASCII encoding are presented. The presented material may be interesting not only to engineers and students, but also to readers who do not have knowledge in this field.

Key words: Number system, bit, nibble, tetrad, byte, microcontroller, STM32, terminal application, negative numbers, additional code, encoding, ASCII, KOI-8, CP866, Windows-1251, ASCII graphics, UTF-8, UTF-16, UTF-32, Unicode, CoolTerm, C, encoding tables, IEC 60027-2, GOST 8.417-200.

References

[1] Hexadecimal number system. [electronic resource]. Access mode:

https://ru.wikipedia.org/wiki/Шестнадцатеричная_ система_счисления

[2] Binary number system. [electronic resource]. Access mode: https://ru.wikipedia.org/wiki/ Двоичная система счисления

[3] How many bytes are there in a kilobyte? [electronic resource]. Access mode: https://www.artlebedev.ru/kovodstvo/sections/8 4

[4] GOST IEC 60027-2— 2015. [electronic resource]. Access mode: https://files.stroyinf.ru/ /Data2/1/4293758/4293758971.pdf

[5] GOST 8.417-2002. [electronic resource]. Access mode:

https ://astro.insma.urfu. ru/sites/default/files/upl oad_files/doc/gost_8.417-2002.pdf

[6] "On approval of the Regulations on Units of Quantities Allowed for Use in the Russian Federation". [electronic resource]. Access mode: https://base.garant.ru/ /196573/ysclid=ladx35a073471909821

[7] ASCII. [electronic resource]. Access mode: https://ru.wikipedia.org/wiki/ASCII

[8] KOI-8. [Electronic resource]. Access mode: https://ru.wikipedia.org/wiki/KOH-8

[9] CP866. [Electronic resource]. Access mode: https://ru.wikipedia.org/wiki/CP866

[10] Lexicon (program). [electronic resource]. Access mode:

https://ru.wikipedia.org/wiki/Lexicon_(program )

[11] Code page identifiers. [electronic resource]. Access mode: https://learn.microsoft.com/ru-ru/windows/win32/intl/code-page-identifiers

[12] Windows-1251. [electronic resource]. Access mode: https://ru.wikipedia.org/wiki/Windows-1251

[13] Unicode. [electronic resource]. Access mode: https://ru.wikipedia. org/wiki/TOHrnog

[14] Terminal application "CoolTerm". [electronic resource]. Access mode: https://coolterm.en.lo4d.com/windows

Alexander E. Bliznyuk,

student of the 2nd year of the master's program of the Automation Department of NSTU. Author of three scientific papers. E-mail:

bliznyuksaha@mail.ru

Vitaly G. Trubin, senior lecturer at the Department of Automation of NSTU, Director of KB «Automatika LLC». Author of more than 50 scientific and educational works.

E-mail: trubin@ngs.ru

Galina V. Sablina, Associate Professor of the Department of Automation of NSTU, Candidate of Technical Sciences. Author of more than 40 scientific and educational works.

E-mail: sablina@corp.nstu.ru

The paper has been recieved 10.11.2022.

i Надоели баннеры? Вы всегда можете отключить рекламу.