…. а потом еще раз туда, и еще раз обратно… В общем “тудов” и “обратнов” у меня было достаточно много.
Свой проект GPS Logger’a я начал на платформе Ардуино. Постепенно я вырос до контроллера STM32F103, но код остался на базе клона ардуины — stm32duino. Что именно я строю, зачем, какие библиотеки использую и прочие вопросы по самому устройству я сегодня оставлю за кадром — все это я описывал в упомянутых статьях (есть еще третья часть про билдсистему). Сегодняшняя тема — переезд на HAL (он же STM32Cube).
Время от времени в комментариях к моим статьям, а также в личных беседах с коллегами по цеху возникает вопрос “а почему ардуино? Есть же HAL!”. Сначала я отмахивался, мол, у меня уже код на ардуиновских библиотеках, не хочу переписывать. И еще мне HAL не понравился своим некрасивым и громоздким стилем. Но врожденное любопытство подстегнуло все таки посмотреть еще разок на HAL с разных сторон.
Я провел несколько месяцев пробуя разные подходы, библиотеки и платформы. В итоге я пришел к выводу, что HAL хоть и громоздкий, но, в целом, заслуживает внимания. С ним можно добиться некоторых вещей, чего нельзя сделать используя только ардуино подход (например DMA). В итоге я переписал свой проект используя HAL (не весь, часть все же осталась на Arduino, но тоже поверх HAL) о чем и хочу рассказать в этой статье.