# STM32WB55CGU6 Zigbee Master/Slave Keil Project Проект для STM32WB55CGU6 в Keil MDK на базе официального CubeWB Zigbee-примера. Основной Keil-файл: ```text MDK-ARM/Zigbee_OnOff_Server_Coord.uvprojx ``` ## Что реализовано - Глобальная структура `g_app` хранит роль, состояние Zigbee, конфиг сети, кнопки и аналоговый канал. - Роль можно переключать во время работы через `App_SetRole()` или аппаратный переключатель в `Hardware_ReadRoleSwitchIsMaster()`. - Режим `slave` читает 3 кнопки и 1 аналоговый канал, фильтрует ADC и отправляет отчет через `ZigbeePort_SendSlaveInputs()`. - Режим `master` отделен архитектурно: он должен открыть Zigbee-сеть и принимать отчеты slave в `zigbee_port.c`. - ST `main.c`, `app_entry.c`, startup, scatter, HAL, BSP и `STM32_WPAN` взяты из `STM32Cube_FW_WB_V1.23.0`. ## Следующие аппаратные шаги 1. Проверить, что установлен `STM32Cube_FW_WB_V1.23.0`. 2. Открыть `MDK-ARM/Zigbee_OnOff_Server_Coord.uvprojx`. 3. В `App/hardware.c` назначить реальные пины роли, 3 кнопок и ADC. 4. В `App/zigbee_port.c` заменить текущий адаптер на реальные STM32_WPAN/Zigbee send/receive вызовы. 5. Для STM32WB55CGU6 проверить memory layout и package pinout, потому что ST-база взята от `P-NUCLEO-WB55.Nucleo`. ## Где менять поведение - `App/app_config.h` - период отправки, endpoint, cluster id, роль по умолчанию. - `App/app_types.h` - глобальные структуры. - `App/slave_inputs.c` - debounce кнопок и фильтр ADC. - `App/zigbee_app.c` - общая логика master/slave. - `App/zigbee_port.c` - реальные Zigbee вызовы STM32WB.