From bf12960dc4693040abde20c87c3ec463093e27b7 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Mon, 17 Jun 2019 21:30:59 +0100 Subject: [PATCH] fix polarity of DE, osci image of working example --- docs/modbus-really-ok.png | Bin 0 -> 9836 bytes pyserialext/writec.c | 6 +++--- snippets/test5.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 docs/modbus-really-ok.png diff --git a/docs/modbus-really-ok.png b/docs/modbus-really-ok.png new file mode 100644 index 0000000000000000000000000000000000000000..72eb24a6b85e173f6e55b0a2978651dd5ec54ec8 GIT binary patch literal 9836 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 literal 0 HcmV?d00001 diff --git a/pyserialext/writec.c b/pyserialext/writec.c index 76358ac..68aa04b 100644 --- a/pyserialext/writec.c +++ b/pyserialext/writec.c @@ -9,17 +9,17 @@ const uint8_t DE_PIN = 0; int init() { wiringPiSetup(); pinMode(DE_PIN, OUTPUT); - digitalWrite(DE_PIN, HIGH); + digitalWrite(DE_PIN, LOW); } ssize_t writec(int fd, char *buf, size_t count) { - digitalWrite(DE_PIN, LOW); + digitalWrite(DE_PIN, HIGH); ssize_t r = write(fd, buf, count); uint8_t lsr; do { int r = ioctl(fd, TIOCSERGETLSR, &lsr); } while (!(lsr & TIOCSER_TEMT)); - digitalWrite(DE_PIN, HIGH); + digitalWrite(DE_PIN, LOW); return r; } diff --git a/snippets/test5.py b/snippets/test5.py index 7520336..b3971cd 100644 --- a/snippets/test5.py +++ b/snippets/test5.py @@ -1,7 +1,7 @@ from pymodbus.client.sync import ModbusSerialClient import RS485Ext -ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=1200) +ser=RS485Ext.RS485Ext(port='/dev/ttyAMA0', baudrate=1200, stopbits=2) client = ModbusSerialClient(method='rtu') client.socket = ser