Задачи: Разработка автономного устройства на микроконтроллере STM32 с графическим интерфейсом, работающего без операционной.
Обеспечение обмена данными с USB-флеш-накопителями, ПЭВМ и другими аналогичными устройствами.
Требования
Обязательные требования (Hard Skills ): 1.
Языки и инструменты разработки: глубокое знание C и/или C++; опыт работы в среде разработки STM32CubeIDE; знание библиотек абстрагирования: HAL (предпочтительно) и/или CMSIS (работа с регистрами напрямую).
Умение комбинировать HAL для быстрой разработки и прямую работу с регистрами для оптимизации.
2.
Архитектура МК и низкоуровневое программирование: понимание архитектуры ARM Cortex-M.
умение работать с системой прерываний (NVIC), таймерами, DMA, тактированием (PLL).
написание кода без использования ОСРВ (голое железо, bare-metal), организация конечных автоматов (FSM) или событийно-ориентированной архитектуры.
3.
Работа с периферией и интерфейсами: уверенная работа с интерфейсом USB (Device и Host).
режим USB-Host: умение подключать и инициализировать USB-флеш-накопители.
файловая система FAT32: чтение/запись файлов с флэш накопителей.
режим USB-Device: настройка устройства для обмена с ПЭВМ.
4.
Графический пользовательский интерфейс (специализированный блок): опыт работы с библиотекой LVGL или TouchGFX; написание драйвера дисплея (подключение по параллельному интерфейсу) с использованием DMA для ускорения вывода; обработка ввода от аппаратной клавиатуры (матричная клавиатура, кнопки) с устранением дребезга; 6.
Сопряжение устройств: опыт организации обмена данными между двумя микроконтроллерными устройствами.
Реализация протокола с проверкой целостности (CRC, контрольные суммы) и квитированием.
7.
Аппаратная отладка и схемотехника: чтение электрических принципиальных схем определение назначения пинов, подтяжек, уровней напряжений; работа с измерительным оборудованием: осциллограф (анализ сигналов SPI/I2C/UART), логический анализатор, мультиметр, источник питания.
Умение отлаживать проблемы с питанием и наводками.