Modbus 0.3
Библиотека Modbus для STM
Loading...
Searching...
No Matches
rs_message.c File Reference

Реализация протоколов обмена по RS/UART. More...

#include "rs_message.h"
#include "modbus_diag.h"
Include dependency graph for rs_message.c:

Go to the source code of this file.

Functions

void RS_UART_Init (void)
void RS_UART_DeInit (UART_HandleTypeDef *huart)
void RS_TIM_Init (void)
void RS_TIM_DeInit (TIM_HandleTypeDef *htim)
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)
 Обновление (сброс) таймаута приема.
__weak RS_StatusTypeDef RS_Response (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)
 Пользовательская функция для ответа на запрос по UART.
__weak RS_StatusTypeDef RS_Collect_Message (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)
 Пользовательская функция для сбора сообщения в буфер UART.
__weak RS_StatusTypeDef RS_Parse_Message (RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)
 Пользовательская функция для парса сообщения из буфера UART.

Variables

uint8_t RS_Buffer [MSG_SIZE_MAX]

Detailed Description

Реализация протоколов обмена по RS/UART.

Модуль реализует асинхронный обмен сообщениями через UART с использованием:

  • Прерываний по приему/передаче
  • Детектирования конца фрейма по IDLE линии
  • Таймаутов через таймер
  • Двухстадийного приема (заголовок + данные)

Архитектура:

В режиме слейв:

  • Инициализация приема с сообщения с максимальным размером MSG_SIZE_MAX
  • При срабатывании прерывания IDLE - обработка полученного сообщения В режиме мастер (пока не реализовано):
  • Отправка запроса и переход в режим приема сообщения с максимальным размером MSG_SIZE_MAX
  • При срабатывании прерывания IDLE - обработка полученного ответа

Необходимые обработчики:

Definition in file rs_message.c.

Variable Documentation

◆ RS_Buffer

uint8_t RS_Buffer[MSG_SIZE_MAX]

Definition at line 28 of file rs_message.c.