From ca8fa259c8d4436772a9d9794987d5526bbd72b3 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Fri, 20 Feb 2026 11:26:15 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 7a9ca99..0690d66 100644 --- a/README.md +++ b/README.md @@ -56,16 +56,15 @@ ProjectRoot/ ``` ### 3. **Настройте конфигурацию** под ваш проект: - #### 3.1. Настройка периферии +#### 3.1. Настройка периферии - - **UART**: Настройте в режиме Asynchronous, нужная скорость (9600, 19200, etc), 8N1 - - **TIM**: Настройте таймер для генерации прерываний (например, 1ms tick) - - **Включите прерывания** для UART и TIM +- **UART**: Настройте в режиме Asynchronous, нужная скорость (9600, 19200, etc), 8N1 +- **TIM**: Настройте таймер для генерации прерываний (например, 1ms tick) +- **Включите прерывания** для UART и TIM - #### 3.2. Подключение обработчиков прерываний - - Подключите обработчики прерываний **UART** и **TIM** в свои IRQ обработчики ***вместо*** HAL-обработчиков: +#### 3.2. Подключение обработчиков прерываний +Подключите обработчики прерываний **UART** и **TIM** в свои IRQ обработчики ***вместо*** HAL-обработчиков: ```c #include "modbus.h" @@ -83,11 +82,11 @@ void TIMx_IRQHandler(void) HAL_TIM_IRQHandler(&htim); } ``` - #### 3.3. В `modbus_config.h` укажите параметры устройства +#### 3.3. В `modbus_config.h` укажите параметры устройства - #### 3.4. Инициализация в коде - - Чтобы настроить Slave-режим `main()` после инициализации HAL: +#### 3.4. Инициализация в коде + +Чтобы настроить Slave-режим `main()` после инициализации HAL: ```c #include "modbus.h" @@ -120,7 +119,7 @@ int main(void) } } ``` - Чтобы настроить Master-режим `main()` после инициализации HAL: +Чтобы настроить Master-режим `main()` после инициализации HAL: ```c #include "modbus.h" @@ -176,11 +175,11 @@ int main(void) } ``` - #### 3.5. Настройка карты данных (только для режима Slave) +#### 3.5. Настройка карты данных (только для режима Slave) - В `modbus_data.h` настройте регистры и coils под ваше устройство: +В `modbus_data.h` настройте регистры и coils под ваше устройство: - **Input Registers (только чтение)** +**Input Registers (только чтение)** ```c typedef struct { @@ -193,7 +192,7 @@ typedef struct #define R_INPUT_ADDR 0 // Начальный адрес Input регистров #define R_INPUT_QNT 4 // Количество Input регистров ``` - **Holding Registers (чтение/запись)** +**Holding Registers (чтение/запись)** ```c typedef struct { @@ -205,7 +204,7 @@ typedef struct #define R_HOLDING_ADDR 0 // Начальный адрес Holding регистров #define R_HOLDING_QNT 3 // Количество Holding регистров ``` - **Coils (1-битные)** +**Coils (1-битные)** ```c typedef struct { @@ -219,9 +218,9 @@ typedef struct #define C_COILS_ADDR 0 // Начальный адрес Coils #define C_COILS_QNT 4 // Количество Coils ``` - #### 3.6. Доступ к данным в коде +#### 3.6. Доступ к данным в коде - В режиме **слейва** есть дефайны для удобного выставления Коилов. На случай если они не упакованы в битовые поля +В режиме **слейва** есть дефайны для удобного выставления Коилов. На случай если они не упакованы в битовые поля ```c // Чтение входных регистров uint16_t temp = MB_DATA.InRegs.Temperature; @@ -238,7 +237,7 @@ if (MB_Coil_Read_Local(&MB_DATA.Coils, 2)) { // Pump включен } ``` - В режиме **мастера** есть функции для получения информации из ответа `MB_RespGet_...()` +В режиме **мастера** есть функции для получения информации из ответа `MB_RespGet_...()` ```c // Чтение регистров: Получить запрошенные регистры uint16_t value;