Как передать данные с помощью RS485 на BeagleBone Black - PullRequest
0 голосов
/ 19 июня 2019

Мне нужно передать данные в BeagleBone Black через Modbus RTU, используя Rs485.Для работы с Modbus RTU, но я не знаю, как переключать rts в rs-485.HELP

Код передачи данных Modbus RTU

как добавить к этому код RS485, чтобы использоватьБиблиотека Modbus libmodbus

#include "modbus-rtu.h"
#include <stdio.h>
#include <errno.h>

int main(){
int connected;
    modbus_t *ctx;     
    uint16_t tab_reg[64];    
    int rc;     
    int i;
    ctx = modbus_new_rtu("/dev/ttyS4", 9600, 'N', 8, 1);     
    if(ctx == NULL) {   
        fprintf(stderr, "Unable to create the libmodbus context\n");

    }
    else {
        modbus_set_slave(ctx, 1);     
        modbus_set_debug(ctx, TRUE);     
        connected = modbus_connect(ctx);    
        printf("modbus_set_slave return: %d\n", rc);
        if (rc != 0)
        {
            printf("modbus_set_slave: %s \n"modbus_strerror(errno));        
        }
            rc = modbus_read_registers(ctx, 0, 3, tab_reg);      
        for (i = 0; i < rc; i++) {
            printf("reg[%d]=%d (0x%X)\n", i, tab_reg[i], tab_reg[i]);
        }
            if(rc == -1)
            {
                fprintf(stderr, "%s\n", modbus_strerror(errno));
            }               
        modbus_close(ctx);     
        modbus_free(ctx);     
    }
return 0;
}

1 Ответ

0 голосов
/ 19 июня 2019

Сначала я бы проверил, поддерживает ли ваше оборудование автоматическое (аппаратное) полудуплексное управление направлением.

Если нет, то вы можете взглянуть на этот ответ .Там у вас есть все детали, необходимые для компиляции и установки libmodbus с поддержкой переключения линии с программным обеспечением.

Я использую это решение на моих компьютерах RPi и CHIP, но вы должныиметь возможность использовать его прямо на BBB.Вы можете найти небольшую оговорку, если имя файла GPIO имеет 3 или 4-значное число (см. /sys/class/gpio).Если это так, взгляните здесь , мне пришлось изменить код, чтобы исправить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...