Loading...
Searching...
No Matches
RS Tools

Всякое для работы по UART/RS. More...

Collaboration diagram for RS Tools:

## Topics

| Tools for debug RS/UART/TIM
| Дефайны для отладки периферии

## Classes

struct | RS_FlagsTypeDef
| Struct for flags RS. More...
struct | RS_HandleTypeDef
| Handle for RS communication. More...

## Macros

#define | RS_EnableReceive()
| Функция изменения направления передачи на ПРИЕМ для RS-485.
#define | RS_EnableTransmit()
| Функция изменения направления передачи на ПЕРЕДАЧУ для RS-485.
#define | RS_MASTER_MODE_START 0x3
| Начало режимов мастера (до него - режим слейв)

## Enumerations

enum | RS_StatusTypeDef { RS_OK = 0x01 , RS_ERR , RS_ABORTED , RS_BUSY , RS_SKIP , RS_TIMEOUT , RS_COLLECT_MSG_ERR , RS_PARSE_MSG_ERR }
| Enums for respond CMD about RS status. More...
enum | RS_ModeTypeDef { RS_SLAVE_ALWAYS_WAIT = 0x01 , RS_RESERVED = 0x02 , RS_MASTER_REQUEST = 0x03 }
| Enums for RS Modes. More...
enum | RS_AbortTypeDef { ABORT_TX = 0x01 , ABORT_RX = 0x02 , ABORT_RX_TX = 0x03 , ABORT_RS = 0x04 }
| Enums for Abort modes. More...

## Functions

RS_StatusTypeDef | RS_Response (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
| Пользовательская функция для ответа на запрос по UART.
__weak RS_StatusTypeDef | RS_Response_Callback (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
RS_StatusTypeDef | RS_Collect_Message (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)
| Пользовательская функция для сбора сообщения в буфер UART.
RS_StatusTypeDef | RS_Parse_Message (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)
| Пользовательская функция для парса сообщения из буфера UART.
RS_StatusTypeDef | RS_Receive_IT (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
| Начать прием по прерываниям.
RS_StatusTypeDef | RS_Transmit_IT (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
| Начать передачу по прерываниям.
RS_StatusTypeDef | RS_Init (RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr)
| Инициалазация структуры RS_HandleTypeDef.
RS_StatusTypeDef | RS_Abort (RS_HandleTypeDef *hRS, RS_AbortTypeDef AbortMode)
| Отменить прием/передачу RS/UART.
RS_StatusTypeDef | RS_Handle_Receive_Start (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
| Обработчик для начала приема.
RS_StatusTypeDef | RS_Handle_Transmit_Start (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
| Обработчик для начала передачи.
RS_StatusTypeDef | RS_UART_TxCpltCallback (RS_HandleTypeDef *hRS)
| UART TX Callback: коллбек после окончания передачи.
void | RS_UART_Handler (RS_HandleTypeDef *hRS)
| Обработчик прерывания UART.
void | RS_TIM_Handler (RS_HandleTypeDef *hRS)
| Обработчик прерывания TIM.
RS_StatusTypeDef | RS_Timeout_Start (RS_HandleTypeDef *hRS)
| Запуск таймаута приема.
RS_StatusTypeDef | RS_Timeout_Stop (RS_HandleTypeDef *hRS)
| Остановка таймаута приема.
RS_StatusTypeDef | RS_Timeout_Update (RS_HandleTypeDef *hRS)
| Обновление (сброс) таймаута приема.

## Variables

RS_HandleTypeDef | hmodbus1
| Default Handle for Modbus.

## Detailed Description

Всякое для работы по UART/RS.

Универсальная библиотека для работы с последовательными протоколами (Modbus, Custom) через UART в режиме прерываний с поддержкой таймаутов.

# Основные возможности:

- Прием/передача в прерываниях
- Обработка IDLE линии для определения конца фрейма
- Таймауты приема через TIM
- Гибкая настройка размера сообщений

# Использование:

1. Определить структуру сообщения и размеры буфера
2. Реализовать weak-функции обработки сообщений
3. Добавить вызовы RS_UART_Handler/RS_TIM_Handler в прерывания
4. Инициализировать через RS_Init() и запустить прием RS_Receive_IT()

# Особенности:

- Буфер: RS_Buffer[MSG_SIZE_MAX] Общий для приема/передачи
- Состояния: отслеживается через флаги в RS_HandleTypeDef
- Таймауты: контролируют максимальное время ожидания фрейма

## Macro Definition Documentation

## RS_EnableReceive

#define RS_EnableReceive | ( |  | ) |

Функция изменения направления передачи на ПРИЕМ для RS-485.

Definition at line 150 of file rs_message.h.

## RS_EnableTransmit

#define RS_EnableTransmit | ( |  | ) |

Функция изменения направления передачи на ПЕРЕДАЧУ для RS-485.

Definition at line 153 of file rs_message.h.

## RS_MASTER_MODE_START

#define RS_MASTER_MODE_START 0x3

Начало режимов мастера (до него - режим слейв)

Definition at line 181 of file rs_message.h.

## Enumeration Type Documentation

## RS_StatusTypeDef

enum RS_StatusTypeDef

Enums for respond CMD about RS status.

Definition at line 163 of file rs_message.h.

## RS_ModeTypeDef

enum RS_ModeTypeDef

Enums for RS Modes.

Enumerator
RS_SLAVE_ALWAYS_WAIT | Слейв в постоянном ожидании
RS_RESERVED | резерв
RS_MASTER_REQUEST | Мастер с ручным запросом

Definition at line 183 of file rs_message.h.

## RS_AbortTypeDef

enum RS_AbortTypeDef

Enums for Abort modes.

Enumerator
ABORT_TX | Отменить передачу
ABORT_RX | Отменить прием
ABORT_RX_TX | Отменить прием и передачу
ABORT_RS | Отменить любую работу UART в целом

Definition at line 192 of file rs_message.h.

## Function Documentation

## RS_Response()

RS_StatusTypeDef RS_Response | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg )

Пользовательская функция для ответа на запрос по UART.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.

Returns
  RS_RES Статус о результате ответа на комманду.

Definition at line 184 of file modbus.c.

## RS_Collect_Message()

RS_StatusTypeDef RS_Collect_Message | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg,
|  | uint8_t * | msg_uart_buff )

Пользовательская функция для сбора сообщения в буфер UART.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.
  msg_uart_buff | Указатель на буффер UART.

Returns
  RS_RES Статус о результате заполнения буфера.

Definition at line 193 of file modbus.c.

## RS_Parse_Message()

RS_StatusTypeDef RS_Parse_Message | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg,
|  | uint8_t * | msg_uart_buff )

Пользовательская функция для парса сообщения из буфера UART.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.
  msg_uart_buff | Указатель на буффер UART.

Returns
  RS_RES Статус о результате заполнения структуры.

Definition at line 205 of file modbus.c.

## RS_Receive_IT()

RS_StatusTypeDef RS_Receive_IT | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg )

Начать прием по прерываниям.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.

Returns
  RS_RES Статус о состоянии RS после инициализации приема.

Definition at line 43 of file rs_message.c.

## RS_Transmit_IT()

RS_StatusTypeDef RS_Transmit_IT | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg )

Начать передачу по прерываниям.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.

Returns
  RS_RES Статус о состоянии RS после инициализации передачи.

Definition at line 91 of file rs_message.c.

## RS_Init()

RS_StatusTypeDef RS_Init | ( | RS_HandleTypeDef * | hRS,
|  | UART_HandleTypeDef * | huart,
|  | TIM_HandleTypeDef * | htim,
|  | uint8_t * | pRS_BufferPtr )

Инициалазация структуры RS_HandleTypeDef.

Parameters

  hRS | Указатель на хендлер RS.
  suart | Указатель на структуру с настройками UART.
  stim | Указатель на структуру с настройками таймера.
  pRS_BufferPtr | Указатель на буффер для приема-передачи по UART. Если он NULL, то поставиться библиотечный буфер.

Returns
  RS_RES Статус о состоянии RS после инициализации.

Инициализация перефирии и структуры для приема-передачи по RS.

Definition at line 156 of file rs_message.c.

## RS_Abort()

RS_StatusTypeDef RS_Abort | ( | RS_HandleTypeDef * | hRS,
|  | RS_AbortTypeDef | AbortMode )

Отменить прием/передачу RS/UART.

Parameters

  hRS | Указатель на хендлер RS.

  AbortMode

  Выбор, что надо отменить.
  - ABORT_TX: Отмена передачи по ЮАРТ, с очищением флагов TX,
  - ABORT_RX: Отмена приема по ЮАРТ, с очищением флагов RX,
  - ABORT_RX_TX: Отмена приема и передачи по ЮАРТ,
  - ABORT_RS: Отмена приема-передачи RS, с очищением всей структуры.

Returns
  RS_RES Статус о состоянии RS после аборта.

Отмена работы UART в целом или отмена приема/передачи RS. Также очищается хендл hRS.

Definition at line 193 of file rs_message.c.

## RS_Handle_Receive_Start()

RS_StatusTypeDef RS_Handle_Receive_Start | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg )

Обработчик для начала приема.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.

Returns
  RS_RES Статус о состоянии RS после инициализации приема или окончания общения.

Определяет начинать прием команды/ответа или нет.

Definition at line 237 of file rs_message.c.

## RS_Handle_Transmit_Start()

RS_StatusTypeDef RS_Handle_Transmit_Start | ( | RS_HandleTypeDef * | hRS,
|  | RS_MsgTypeDef * | RS_msg )

Обработчик для начала передачи.

Parameters

  hRS | Указатель на хендлер RS.
  RS_msg | Указатель на структуру сообщения.

Returns
  RS_RES Статус о состоянии RS после инициализации передачи.

Определяет отвечать ли на команду или нет.

Definition at line 269 of file rs_message.c.

## RS_UART_TxCpltCallback()

RS_StatusTypeDef RS_UART_TxCpltCallback | ( | RS_HandleTypeDef * | hRS | ) |

UART TX Callback: коллбек после окончания передачи.

Parameters

  hRS | Указатель на хендлер RS.

Returns
  RS_RES Статус о состоянии RS после обработки приема.

Определяет поведение RS после передачи сообщения.

Definition at line 300 of file rs_message.c.

## RS_UART_Handler()

void RS_UART_Handler | ( | RS_HandleTypeDef * | hRS | ) |

Обработчик прерывания UART.

Parameters

  hRS | Указатель на хендлер RS.

Обрабатывает ошибки если есть и вызывает RS Коллбеки. Добавить вызов этой функции в UARTx_IRQHandler() ВМЕСТО HAL_UART_IRQHandler().

Definition at line 320 of file rs_message.c.

## RS_TIM_Handler()

void RS_TIM_Handler | ( | RS_HandleTypeDef * | hRS | ) |

Обработчик прерывания TIM.

Parameters

  hRS | Указатель на хендлер RS.

Попадание сюда = таймаут и перезапуск RS приема Добавить вызов этой функции в TIMx_IRQHandler() ВМЕСТО HAL_TIM_IRQHandler().

Definition at line 433 of file rs_message.c.

## RS_Timeout_Start()

RS_StatusTypeDef RS_Timeout_Start | ( | RS_HandleTypeDef * | hRS | ) |

Запуск таймаута приема.

Parameters

  hRS | Указатель на хендлер RS.

Returns
  RS_RES Статус операции.

Запускает таймер для отсчета времени ожидания следующего байта.

Definition at line 471 of file rs_message.c.

## RS_Timeout_Stop()

RS_StatusTypeDef RS_Timeout_Stop | ( | RS_HandleTypeDef * | hRS | ) |

Остановка таймаута приема.

Parameters

  hRS | Указатель на хендлер RS.

Returns
  RS_RES Статус операции.

Останавливает таймер ожидания.

Definition at line 491 of file rs_message.c.

## RS_Timeout_Update()

RS_StatusTypeDef RS_Timeout_Update | ( | RS_HandleTypeDef * | hRS | ) |

Обновление (сброс) таймаута приема.

Parameters

  hRS | Указатель на хендлер RS.

Returns
  RS_RES Статус операции.

Сбрасывает счетчик таймера в 0.

Definition at line 509 of file rs_message.c.

## Variable Documentation

## hmodbus1

RS_HandleTypeDef hmodbus1

extern

Default Handle for Modbus.

Definition at line 24 of file modbus.c.