/** ****************************************************************************** * @file modbus.h * @brief Главный заголовочный файл Modbus библиотеки ****************************************************************************** @addtogroup MODBUS Modbus tools ****************************************************************************** @addtogroup MODBUS_FUNCTIONS Modbus library funtions @ingroup MODBUS @{ ****************************************************************************** * @details Объединяющий файл для подключения всей функциональности Modbus. Подключает все необходимые модули: @section Инструкция по подключению Для корректной работы надо: - Подключить обработчики RS_UART_Handler(), RS_TIM_Handler(), в соответствубщие низкоуровневые прерывания UART_IRQHandler, TIM_IRQHandler вместо HAL'овского обработчика - В modbus_config.h настроить дефайны для нужной работы UART - Инициализировать хендл мобдас. По умолчанию глобально создается hmodbus1 - После для запуска Modbus: @verbatim //----------------Прием модбас----------------// #include "modbus.h" MODBUS_FirstInit(&hmodbus1, &huart1, &htim3); //MODBUS_Config(&hmodbus1, 1, 1000, 0); // - если нужны другие настройки, не из modbus_config.h MODBUS_SlaveStart(&hmodbus1, NULL); @endverbatim @section Подключаемые модули: - rs_message.h - работа с uart - modbus_core.h - базовые определения - modbus_coils.h - работа с дискретными выходами - modbus_holdregs.h - работа с регистрами хранения - modbus_inputregs.h - работа с входными регистрами - modbus_devid.h - идентификация устройства - modbus_diag.h - диагностика modbus @section Структура данных Modbus #### Holding/Input Registers: - Регистры — 16-битные слова. Доступ к регистрам осуществляется через указатель. Таким образом, сами регистры могут представлять собой как массив так и структуру. #### Coils: - Coils — это биты, упакованные в 16-битные слова. Доступ к коилам осуществляется через указатель. Таким образом, сами коилы могут представлять собой как массив так и структуру. ******************************************************************************/ #ifndef __MODBUS_H_ #define __MODBUS_H_ #include "rs_message.h" #include "modbus_coils.h" #include "modbus_holdregs.h" #include "modbus_inputregs.h" #include "modbus_devid.h" #include "modbus_diag.h" ///////////////////////////////////////////////////////////////////// /////////////////////////---FUNCTIONS---///////////////////////////// //----------------FUNCTIONS FOR USER---------------- /** * @addtogroup MODBUS_INIT_FUNCTIONS Functions for Init * @ingroup MODBUS_FUNCTIONS * @brief Функции для инициализации @{ */ /* Инициализация периферии модбас. */ HAL_StatusTypeDef MODBUS_FirstInit(RS_HandleTypeDef *hmodbus, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim); /* Программная конфигурация модбас. */ HAL_StatusTypeDef MODBUS_Config(RS_HandleTypeDef *hmodbus, uint8_t ID, uint16_t Timeout, uint8_t master); /* Запуск слейв устройства */ HAL_StatusTypeDef MODBUS_SlaveStart(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg); /** MODBUS_INIT_FUNCTIONS * @} */ //---------PROCESS MODBUS COMMAND FUNCTIONS--------- /////////////////////////---FUNCTIONS---///////////////////////////// #endif //__MODBUS_H_ /** MODBUS_FUNCTIONS * @} */