Прошивка модуля управления графическим дисплеем аппарата. Обеспечивает вывод телеметрии и интерфейс взаимодействия через шину RS-485.
- Hardware: STM32F103
- Дисплей: OLED 128x64 (SSD1306, шина I2C).
- Связь: RS-485. Логика обмена данными с мастером и сетевой интерфейс построены на Hydrolib.
- Язык: Modern C++ (C++20).
- Синхронизация: Реализована через абстракцию
MemoryMap(чтение/запись параметров системы по смещениям).
- SCL:
PB6 - SDA:
PB7 - Параметры: 100 kHz, 7-bit addressing.
- TX:
PA9 - RX:
PA10 - DE (Direction):
PA8
В системе задействовано 6 кнопок для навигации по интерфейсу:
- Pins:
PA0,PA1,PA2,PA3,PA4,PA5 - Конфигурация:
Input Mode, без внутренней подтяжки (No Pull). Требуются внешние резисторы.
Для проекта настроен Dev Container, который включает всё необходимое окружение:
- Базовый образ:
seajackal/hydrodrivers:latest(ARM Toolchain, CMake). - Отладка: Поддержка
Cortex-DebugиPeripheral Viewer. - Прошивка: Контейнер запущен в привилегированном режиме с пробросом
/dev/bus/usbдля работы с программаторами через OpenOCD.
Просто откройте папку проекта в VS Code и выберите "Reopen in Container".
Проект использует иерархическую структуру зависимостей. Для клонирования со всеми подмодулями:
git clone --recursive https://github.com/klegot/HydroScreen_SAUVC.gitОсновные зависимости:
Drivers/Hydrodrivers— SeaJackal/HydrodriversHydrolib— SeaJackal/Hydrolib-soft
Конфигурация периферии микроконтроллера STM32F103:
- Baudrate: 115200
- Pins (STM32):
TX: PA9,RX: PA10,DE: PA8.
Прошивка поддерживает систему динамических окон:
- Main Menu — навигация.
- Diagnostics — системные показатели.
- VMA Revolutions — состояние 10 движителей.
- Mission Launch — выбор и старт миссий.
- Error Log — журнал ошибок.
- Bottom Stroke — статус-бар (заряд АКБ L/R, наличие ошибок).
cmake --preset Debug
cmake --build ./build/DebugУстройство работает в режиме Slave с адресом 3. Мастер (адрес 2) обновляет структуру MemoryMap.
| Поле | Тип | Описание |
|---|---|---|
vma_statuses[10] |
int8_t |
Состояние движителей (1 = OK, 0 = ERROR). |
killsw_status |
int8_t |
Состояние киллсвича (1 = ON, 0 = OFF). |
current_mission |
int8_t |
Номер активной миссии (1...4). |
batL / batR_voltage |
int16_t |
Напряжение АКБ. Формат: 1250 = 12.50V. |
mission_names[4][16] |
int8_t |
4 названия миссий до 16 символов. |
error_logs[4][16] |
int8_t |
4 строки лога ошибок. |
free_bytes |
int16_t |
Резервные байты. |
Developed by klegot