работает слейв и мастер

This commit is contained in:
2026-05-28 03:20:13 +03:00
commit cbb571f124
191 changed files with 55316 additions and 0 deletions

33
README.md Normal file
View File

@@ -0,0 +1,33 @@
# 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.