1. Введение
Несмотря на то, что COM-порт на компьютерах и ноутбуках ушел в прошлое чуть ли не в начале этого века, сам протокол RS-232 до сих пор живет и здравствует. По большому счету, ни один микроконтроллер, ни одно встраиваемое решение не лишено хотя бы одного UART/USART интерфейса. А если его и нет, то его делают программно. В повседневной жизни про USART вспоминают, например, после окирпичивания роутера, да и прошивку зачастую можно перезалить только с его помощью.
Бывают и другие задачи: например, вы купили USB-датчик, а программа с ним не хочет работать. Да еще и выдает максимально «информативную» ошибку вроде «ошибка 41, нет связи с устройством». При этом лампочка на устройстве моргает, как бы намекая, что связь-то есть... Вот было бы здорово узнать, что за пакеты улетели, а главное, отреагировала ли на них наша USB-железка.
1. Водная часть
Во всех микроконтроллерах (мк) есть такая полезная штука, как сторожевая псина (watchdog), призванная для одной цели: искать и уничтожать ребутать мк в случае его зависания. Если основная программа в каком-то месте не успела сбросить таймер watchdog, то ее ждет аварийный ребут. И если в любительских устройствах поговорка «семь бед ― один резет» еще допустима, то в случае более серьезного использования желательно узнать причину перезагрузки. Но ведь после перезагрузки все данные потеряны, искать больше нечего. Или нет?
Вы уверены, что хотите выполнить это действие? Оно станет необратимым.
*Emphasized text*
**Bold Text**
*** (Horizontal rule)
> Blockquote
[Google](http://www.google.com)
[Google](http://www.google.com "Google")

[](http://google.com)
print "Hello World"
For a more detailed info visit the official Markdown website