34 lines
2.1 KiB
Markdown
34 lines
2.1 KiB
Markdown
# 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.
|