Добавим в пример Передача строки вывод инкрементируемого счетчика. Для этого воспользуемся достаточно известной функцией форматированного вывода printf в реализации elm-chan - xprintf. Эта библиотека была выбрана по причине своей компактности, а также малому потреблению ресурсов. При этом она реализует полностью форматированный целочисленный вывод и не только его.
Начнем с создания проекта:
nis@jane ~/stm32/f4examples/06-usart $ cp -av 03-send-string/ 07-xprintf
nis@jane ~/stm32/f4examples/06-usart $ cd 07-xprintf/
Изменим startup.c добавив в обработчик прерывания таймера №4 статическую переменную и форматированный вывод.
Также сделаем функцию вывода в серийный порт №1 в файле usart.c.
А в файле work.c мы добавим инициализацию библиотеки xprintf в main().
Не забудем в файле xprintf.h указать необходимые настройки:
#define _USE_XFUNC_OUT 1 /* 1: Use output functions */
#define _CR_CRLF 1 /* 1: Convert \n ==> \r\n in the output char */
#define _USE_XFUNC_IN 0 /* 1: Use input function */
#define _LINE_ECHO 0 /* 1: Echo back input chars in xgets function */
Далее соберем проект и загрузим его в МК:
nis@jane ~/stm32/f4examples/06-usart/07-xprintf $ make write
Видео:
В этом примере отчетливо видно как функция форматированного вывода облегчает восприятие информации передаваемой из МК.