Обновить README.md
This commit is contained in:
37
README.md
37
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. Инициализация в коде
|
||||
#### 3.4. Инициализация в коде
|
||||
|
||||
Чтобы настроить Slave-режим `main()` после инициализации HAL:
|
||||
Чтобы настроить 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;
|
||||
|
||||
Reference in New Issue
Block a user