Сделал конвертер на ардуино. т.е. использую на ардуино два serial порта. к одному подключаю блютуз модуль, к другому переходник usb-uart на ftdi. в терминалах обмен происходит. подключаю вместо переходника k-line адаптер, программа дианостики автомобиля его не видет. k-line адаптер работает на скорости 10400. пробовал вместо программы диагностики включать терминал. какие то данные приходят при включении зажигания.почему программа не видет адаптер?
01 | #include <SoftwareSerial.h> |
03 | SoftwareSerial mySerial(10, 11); |
12 | Serial .println( "Goodnight moon!" ); |
16 | mySerial.begin(10400); |
21 | if (mySerial.available()) |
22 | Serial .write(mySerial.read()); |
23 | if ( Serial .available()) |
24 | mySerial.write( Serial .read()); |
и в библиотеке SoftwareSerial в файле SoftwareSerial.cpp добавлял в трех местах строчки для нестандартной скорости: { 10400, 106, 218, 218, 215, },
Поменял местами, как показано на схеме, и в скетче, заработало, но не стабильно, в программе при подключении на запрос приходят не все данные и обновляются долго.
01
#include <SoftwareSerial.h>
02
03
SoftwareSerial mySerial(10, 11);
// RX, TX
04
05
void
setup
()
06
{
07
// Инициализируем последовательный интерфейс и ждем открытия порта:
08
Serial
.begin(10400);
09
while
(!
Serial
)
10
11
12
Serial
.println(
"Goodnight moon!"
);
13
14
// устанавливаем скорость передачи данных для последовательного порта, созданного
15
// библиотекой SoftwareSerial
16
mySerial.begin(9600);
17
}
18
19
void
loop
()
// выполняется циклически
20
{
21
if
(mySerial.available())
22
Serial
.write(mySerial.read());
23
if
(
Serial
.available())
24
mySerial.write(
Serial
.read());
25
}
Здравствуйте.
Получилось решить проблему?