Обновление примера + доработки мастера
This commit is contained in:
@@ -56,7 +56,16 @@ void SystemClock_Config(void);
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
|
||||
int coil_to_toggle = 0;
|
||||
int coil_state = 0;
|
||||
int coil_real_state = 0;
|
||||
void master_callback(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *msg)
|
||||
{
|
||||
if(MB_GetCoilState(msg, coil_to_toggle, &coil_real_state))
|
||||
{
|
||||
coil_state = coil_real_state;
|
||||
}
|
||||
}
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/**
|
||||
@@ -94,7 +103,6 @@ int main(void)
|
||||
MODBUS_FirstInit(&hmodbus1, &huart1, &htim3);
|
||||
#ifdef MODBUS_MODE_MASTER
|
||||
MODBUS_Config(&hmodbus1, 0, MODBUS_TIMEOUT, MODBUS_MODE_MASTER);
|
||||
MODBUS_MSG = MB_REQUEST_READ_COILS(1, 0, 10);
|
||||
#else
|
||||
MODBUS_Config(&hmodbus1, MODBUS_DEVICE_ID, MODBUS_TIMEOUT, MODBUS_MODE_SLAVE);
|
||||
MODBUS_SlaveStart(&hmodbus1, NULL);
|
||||
@@ -105,6 +113,14 @@ int main(void)
|
||||
/* USER CODE BEGIN WHILE */
|
||||
while (1)
|
||||
{
|
||||
#ifdef MODBUS_MODE_MASTER
|
||||
HAL_Delay(1000);
|
||||
MODBUS_MSG = MB_REQUEST_READ_COILS(1, 0, 5);
|
||||
MODBUS_MasterRequest(&hmodbus1, &MODBUS_MSG, &master_callback);
|
||||
HAL_Delay(1000);
|
||||
MODBUS_MSG = MB_REQUEST_WRITE_SINGLE_COIL(1, coil_to_toggle, !coil_state);
|
||||
MODBUS_MasterRequest(&hmodbus1, &MODBUS_MSG, &master_callback);
|
||||
#endif
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
/* USER CODE BEGIN 3 */
|
||||
|
||||
Reference in New Issue
Block a user