Использование функции printf для отладки кода на микроконтроллере STM32f103.

В данном уроке мы рассмотрим возможность отлаживать программный код с помощью функции printf (отображение данный на экране монитора ). Для включение данной возможности нам необходимо выполнить следующие действия:
  1. Включить доступ к портам, для этого необходимо в меню Manange Run ->Compiler -> I/O и включить STDERR , STDIN и STDOUT компоненты при этом установить Variant в ITM для каждого компонента:
  2. Перейти в отладчик Options for Target -> Debug -> Settings:
  3. В настройка программатора в закладке Trace dв ячейке Core Clock устанавливаем рабочую частоту ядра:
  4. Далее прописываем код(мы будем мигать светодиодом, что бы понимать, что программа работает):
/* USER CODE BEGIN Includes */
#include "stdio.h"
/* USER CODE END Includes */

/* USER CODE BEGIN 3 */

printf("Hellow\r\n");
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_SET);
HAL_Delay(500);
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_6,GPIO_PIN_RESET);
}
/* USER CODE END 3 */
Далее нам необходимо запустить отладчик (ctrl+F5), запустить выполнение кода в цыкле (F5), после чего в меню Viev -> Serial Windows выбрать пункт Debuf (printf) viewer. После этих действий появится окно, в котором будут выводится наши данные помещенные в функцию printf: Для красивого отображения текста я использую следующие  команды: \ r — Возврат каретки \ n — Перевод строки Добавим в наш код следующие строки:
printf (" N = 0x%04X \r \n",gg);
gg++;
И запустим отладку, на мониторе Вы увидите: Таким образом мы можем наблюдать данные на мониторе не используя индикаторы или экраны подключенных к микроконтроллеру.
 Команды форматирования для printf():
Код
Формат
Символ типа char
%d
Десятичное число  со знаком
%i
Десятичное число  со знаком
Знак е
Знак Е
%f
Десятичное число с плавающей точкой
%g
Использует код %е или %f — тот из них, который короче 
%G
Использует код %Е или %f — тот из них, который короче.
Восьмеричное число без знака
%s
Строка символов
%u
Десятичное число без знака
Шестнадцатиричное число без знака , нижний регистр.
Шестнадцатиричное  число без знака, верхний регистр.
Выводит на экран значение указателя
%n
Ассоциированный аргумент — это указатель на переменную целого типа, в которую помещено количество символов, записанных на данный момент
%%
Выводит символ %