TX2 RX2... Я что -то упускаю?

Ореховый
Вторник 09 августа 2016 г., 13:26
Есть ли хитрость, чтобы заставить эти булавки работать?
Я пытаюсь отправить данные на вторую плату через Serial2, IS Nont TX2 и RX2 Serial 2? Или мне нужно изменить режим PIN -кода для этих булавок? Если так, как?

Пито
Вторник 09 августа 2016 г. 14:14
Serial2.Печать (на PA3 = RX2 и PA2 = TX2) работает хорошо здесь (Maple Mini) (Init с Serial2.начинать (115200);).
Не нужно настроить булавки.
IDE 1.6.10., Последнее 32 -делуновое ядро.
Вы должны x сигналы при выполнении Serial2Serial, кстати.

Ореховый
Вторник 09 августа 2016 г. 14:44
Да, это работает эта сторона, кажется, кажется... Я пытаюсь использовать Easy Transfer Library, чтобы заставить мой Maple отправить несколько основных значений мини -Arduino для запуска моих шаговых двигателей...

Но по какой -то причине я не могу заставить Arduino для чтения данных...

Ореховый
Вторник 09 августа 2016 г. 15:58
Больше возиться, и кажется, что это что -то не так с кленом. Это что -то посылало, я подключил к нему свой USB -сериал и сделал серийный консоль.
Но, может быть, данные, которые его отправляют, не совсем подходят для Arduino для чтения... Я не знаю :( Может быть, легкая передача нуждается в подходящем порту для Maple Mini, и он не разрабатывает коробку.

Пито
Вторник 09 августа 2016 г., 16:04
Клен 3.3V и Arduino обычно сигнализирует о 5 В. Используйте не менее 1 ком резисторов последовательно с сигнальными проводами (или лучше смену уровня)..

Ореховый
Вторник 09 августа 2016 г., 17:01
Я не знал, что :( У меня тоже нет резисторов :(

Хо, весело, время сделать покупки, я думаю...

Пито
Вторник 09 августа 2016 г., 17:46
:) На самом деле вам нужен 1 резистор (1 ком или выше), это только обходной путь, лучше использовать переключатель уровня или 3.3V Arduino

Arduino TX 5V ----> резистор 1K ------> Maplemini RX 3V3
Arduino RX 5V <-------------------------- Maplemini TX 3V3
Arduino Gnd <--------------------------> Maplemini Gnd

Ореховый
Вторник 09 августа 2016 г. 18:11
хорошо... Приемный конец - Arduino. Так что ARD не может забрать 3.3V сигнал?
Я заказал некоторые преобразователи логического уровня.
Но да, Ардуино не читает простые пакеты переноса... Где я могу заставить свой Uno поговорить с моим Arduino Pro Mini...

ZMEMW16
Вторник 09 августа 2016 г. 18:14
не толерант на кленовый ввод/вывод 5 В?
не является высоким состоянием для обеих сторон около 2 на 2 или это только для TTL?

Стивен

Пито
Вторник 09 августа 2016 г. 18:20
Но да, Ардуино не читает простые пакеты переноса... В качестве первого шага попробуйте xchange на некоторые байты, чтобы проверить работу HW, вы можете связываться с протоколами..

Ореховый
Вторник 09 августа 2016 г. 18:26
У меня сейчас только один клен... Лучшее, что я мог сделать, это попытаться прочитать сериал, выходящий из клена через серийный адаптер USB. Это не текстовые данные о плоскости...

Я использовал примеры простой передачи RX и TX Blink, чтобы попробовать его...

Как я уже упоминал, я могу заставить его работать с Uno и Pro Mini... но не Maple Mini и Pro Mini...

Пито
Вторник 09 августа 2016 г. 18:40
Отправить пакет из Maple в Uno
ММ тхас ------> Uno rx
GND --------- GND
Таким образом, вы можете проверить, обе скорости, например, 9600.
В начале MM Prog Wait, например, 5Secs, затем отправьте пакет в UNO (UNO в то время уже получает)..
Не используйте мягкие..

Ореховый
Вторник 09 августа 2016 г., 20:13
интересный... Я написал быстрый набросок, чтобы сделать светодиодную вспышку, когда он получает данные... Любые данные. И это вспыхивает, когда клен отправляет что -то.

Итак, Pro Mini получает, так почему же нелегко работать? :/

Пито
Вторник 09 августа 2016 г., 8:30 вечера
Есть простой tranttransfer_tx_example и rx пример.
Запустите easytransfer_tx на mm и rx на Promini. Это должно работать.
Проводка, как указано выше. Не используйте пример Softserialet.

Ореховый
Ср 10 августа 2016 г. 10:06
это примеры, которые я пробовал... Они не работали.

Эдогальдо
Ср 10 августа 2016 г. 10:26
@Nutsy, просто совет: вы рассмотрели различия типов данных между Arduino и Maple? я.эн. В Arduino int - 16 бит, а в клене - 32 бита.
Может быть, это может повлиять на передачу между двумя разными досками..

Ореховый
Ср 10 августа 2016 г., 14:30
Нет, я не знал, я не знал, что последовательные связи будут разными...

Есть ли способ заставить любую доску до одного типа?

Эдогальдо
Ср 10 августа 2016 г. 14:37
Черная писала:Нет, я не знал, я не знал, что последовательные связи будут разными...

Есть ли способ заставить любую доску до одного типа?

Пито
Ср 10 августа 2016 г. 15:05
Q заключается в том, могут ли простой передача функций обрабатывать эти различия в типах (ET имеет перенос в двоичной форме).

Ореховый
Ср 10 августа 2016 г. 15:21
Я действительно действительно задаюсь вопросом, все ли это мне :(

Пито
Ср 10 августа 2016 г. 15:44
Картирование, например:
MapleMini: struct SEND_DATA_STRUCTURE{ //put your variable definitions here for the data you want to send //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO int blinks; // or int32 int pause; // or int32 short dummy; // or int16 long hallo; // or int64 char joe; // or int8 }; Arduino Uno: struct SEND_DATA_STRUCTURE{ //put your variable definitions here for the data you want to send //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO int32 blinks; int32 pause; int16 dummy; int64 hallo; char joe; // or int8 };

Эдогальдо
Ср 10 августа 2016 г. 15:46
Библиотека для Arduino, и в любом случае, сомневается, я бы попытался применить правильный тип размера.

Ореховый
Ср 10 августа 2016 г. 16:25
Ну, это исправило... Неправильные типы данных... Вы снова видите, я не знал, что у Int было 16 32 64 бит.... На Maple Mini я смог заставить его до16... Ардуино не может привести к более высокому биту... Я думаю, это ограничение оборудования...

В любом случае, это работает сейчас...
Спасибо : D

Ореховый
Ср 10 августа 2016 г., 17:25
Скоро поговорил... Я мог бы получить программу передачи Blink, но у меня все еще проблемы с отправкой данных для моих шаговых двигателей для работы:/
Все, что я отправляю, 2 ints... Миль в час и RPM:/

Мадиас
Чт 11 августа 2016 г., 8:57 вечера
ZMEMW16 написал:не толерант на кленовый ввод/вывод 5 В?
не является высоким состоянием для обеих сторон около 2 на 2 или это только для TTL?

Стивен

Ореховый
Чт 11 августа 2016 г., 22:19
Что ж, я отказался от легкой передачи и нашел учебник о том, как отправить несколько значений по сериалу во второй Ардуино...

Это половина работает.

MPH Dial получает правильные числа и работает как обычно...
Однако RPM не работает :( И я не могу понять, почему.
У меня есть ощущение, что это связано с типами данных... Где циферблат MPH только получает числа до 80, RPM получает цифры до 12000.

Это должно быть в пределах диапазона INT, но я наставил переменную на долгое время на всякий случай. Но это все еще не работает.

Мне действительно трудно заставить это работать. Это мешает мне поднять проект на следующий уровень. Мне нужно работать эти основные элементы управления, прежде чем я смогу добавить реальную скорость и рассчитывание Rev Reculation. Я также хочу проявить больше творчества со светодиодами... Но я должен заставить циферблат работать.

Вот мой источник проекта....

http: // спешка.com/rodizuqibo.CS Maple Mini Side, выполняет все данные тяжелые вещи

http: // спешка.com/docerabiha.CS Mini Arduino Pro просто читает серийный отправленный с клена и контролирует двигатели.

Пожалуйста, посмотрите и скажите мне, что я делаю не так? :(

Rogerclark
Четверг 11 августа 2016 г., 23:27
Я бы начал с распечатки значений в серийный USB. и посмотреть, что установлено.

Затем используйте Software Serial на приемном конце, чтобы вы могли распечатать то, что на самом деле получает приемник.

КСТАТИ. Я подозреваю, что было бы не сложно получить легкую передачу для работы, но вы не можете просто иметь такую ​​же структуру на стороне TX и RX, что и внутренние представления данных будут различными на 8 -битном AVR и 32 -битном STM32, а также Компилятор отличается, что может привести к различному внутреннему представлению.

эн.глин. Если вы отправились в отправку данных, используя легкую передачу с STM32 в другой STM32 и использовали Keil в качестве компилятора на стороне TX и GCC на стороне RX, есть большая вероятность, что данные будут облажаться и другое количество байтов.

Если вы переходите между системами, которые составляют более 8 бит, вам также придется иметь дело с «эндсианской» процессором самостоятельно, но в этом случае, поскольку AVR составляет всего 8 битов, эндсианс реализуется Компилятор на стороне AVR и будет определяться аппаратным обеспечением на стороне STM32
Я не проверил это, но STM32, кажется, маленький эндиан, и GCC AVR также должен быть маленьким эндсином (пожалуйста, дважды проверьте это).


Конечно, так как типы данных, такие как Float и Double, также будут проблемой, так как они могут быть совершенно разными с обеих сторон. Я знаю, что у AVR вообще нет двойного, так как двойной фактически тип Defed to Float

Пито
Пт 12 августа 2016 г. 12:10
Вы много связываете с типами в своем коде.
Почему RPM и MPH длинные? Давно то же самое на MM и Uno?
Вы получаете байт и бросаете его в Long или Int - почему? С сериалом.read () Вы получаете всего 1 байт - который байт из "Long" или int?
Вы не можете получить RPM и MPH объявить как долго или Int, прочитав один байт из серийного..
Вы не используете легкую передачу в своем коде выше..
С ET вы можете попробовать: MMini: struct SEND_DATA_STRUCTURE{ //put your variable definitions here for the data you want to send //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO uint16 RPM; // 0-20000 uint16 MPH; // 0-5000 :) }; ProMini: struct RECEIVE_DATA_STRUCTURE{ //put your variable definitions here for the data you want to send //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO uint16 RPM; uint16 MPH; };

Rogerclark
Пт 12 августа 2016 г. 12:44
КСТАТИ.

Я собираюсь объединить серийный буферизационный код TX в Мастере на выходных (когда у меня будет время, чтобы дважды проверить мастер, будет в порядке)

Это ускорит переводы, поскольку они больше не будут блокировать (но не должно выносить вам никаких проблем, это должно просто сделать это быстрее)


Интересно, что вы используете планировщик и что он работает, так как это относительно новая особенность API ARDUINO, и я не уверен, что многие другие люди использовали его на STM32. До планировщика в API большинство людей использовали Freertos, что является гораздо более мощной системой планирования, но в вашем случае я подозреваю, что вы можете достичь того же планирования, используя оператор Switch

Эдогальдо
Пт 12 августа 2016 г., 7:42 утра
Я бы посоветовал вам изменить свои формулы таким образом: long XYZm = (long)(dialRange * (((float)XYZv) / XYZRange));

ZMEMW16
Пт 12 августа 2016 г. 10:34
Напомни мне, если отправить «Привет» Чар от Чар, в каждом направлении мм<->авр?
Стивен

Ореховый
Пт 12 августа 2016 г. 11:48
Вау, на что можно ответить, я попытаюсь получить все...

Эдогальдо, я попробую и дам вам знать, я все еще новичок в C ++, если бы я был VBAIN.

Роджер, я получу нового Мастера из GitHub после выходных, кто знает, что может даже ускориться, так как новый сериал не будет блокировать.
Я полностью забыл о том, что программный сериал является вариантом, так как вы, вероятно, знаете, что на этом Arduino Pro Mini только 1 сериал, мне никогда не приходило в голову, что я мог бы сделать серийные отпечатки с серийным программным обеспечением, чтобы проверить числа... Одним из самых больших недостатков в здании Arduino Build...
Я также попробую получить это немного позже, посмотрим, что происходит. Я придется вытащить паяльный утюж. (Или я могу просто построить это на свой полноразмерный Arduino и просто проверить там... не требуется паяль: P)

Что касается планировщика, да, я понимаю, как научиться его настроить, это не слишком мощный, это на самом деле просто таймер, чтобы сказать, как вызовать функцию цикла и когда. Я надеялся на лучшие многопотоки, чем это, то есть, если это даже возможно, надлежащее ошеломление запуска кода... Скажите часть этой петли, а затем часть этой петли и еще одну часть этого цикла.......... Это отрицало бы необходимость настройки второй платы, чтобы просто запустить двигатели, так как все было бы более плавно. В то время как этот планировщик петли улучшал вещи, двигатели все еще были заметно изменчивы.

Что касается всего 8 -битного 32 -битного материала... Я действительно очень новичок в программировании, и это приближается к инженерному уровню, который требует BSE и докторов наук в области компьютерных наук... Что, как забавно, я бы хотел сделать, если бы жизненные обстоятельства были разными.
И что такое эндиан? : D

Кроме того, я использовал компилятор AVR Mark2 для всего этого, это правильно? Или я должен использовать другой компилятор?

Пито, да, я связывался с типами, в основном пытается заставить вещи работать, пробуя разные вещи, я, вероятно, все еще немного поделал код.
Но я говорил ранее, я понимаю, что обороты не должны быть долго, так как я думаю, что int проходит от -32000 до 32000 или что -то в этом роде... Что касается Int или Long на байте, то это только потому, что он был в учебном пособии...
Я удалил все простые переводы после получения серийного чтения, половина работы... Я предполагаю, что, как сказал Роджер, форматирование данных, отправляемых между досками, несовместимо.


Я просто хочу поблагодарить всех за то, что он нашла время, чтобы просмотреть мой код. Я понимаю, насколько боль в заднице, чтобы прочитать через код других людей, особенно когда это кто -то на моем уровне квалификации и плохо задокументирован.

Я попробую сериал Software, чтобы отдать отладки работали, и еще раз взглянуть на мои типы отливок и держать вас в курсе... Это раздражает, что это оооооооооооооооооааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа же : D

Эдогальдо
Пт 12 августа 2016 12:27
Другое предложение: почему бы не сделать процесс клена формулами и просто отправить в Arduino результаты?!

Лучший, e.

Ореховый
Пт 12 августа 2016 г. 12:33
Эдогальдо написал:Другое предложение: почему бы не сделать процесс клена формулами и просто отправить в Arduino результаты?!

Лучший, e.

Мадиас
Пт 12 августа 2016 г., 17:45
Если вам нужно перенести данные из AVR в STM32, есть более высокие/более быстрые/умные решения, чем UART (особенно при использовании Soft Serial на AVR): i2c или лучше SPI. Вам следует попробовать решение SPI, чтобы у вас был «нативный» серийный на AVR без необходимости замедления программного обеспечения и меньше процессоров (серийный замедление полностью в системе на AVR и STM32). Только недостаток: вам нужно четыре строки вместо двух. Иногда назад я строю 4-голочный синтезатор с 4 нано-ардуино (как «голоса») и одним Tiva TMC123 в качестве главного устройства. В качестве протокола передачи я использовал i2c без проблем (как ни странно, он был более стабильным, чем SPI)

Пито
Пт 12 августа 2016 г., 17:57
I2C и SPI намного быстрее и чувствительны к качеству сигнала - вам понадобятся драйверы/буферы HW при использовании более длинных кабелей.. (>20 см, например)

Мадиас
Пт 12 августа 2016 г., 18:09
Еще один глупый вопрос (не прочитал всю ветку одновременно):
Используете ли вы общее почву для всех устройств? Большинство проблем возникают, если нет общего почва.
Пито: Вы правы, это во многом зависит от длины кабелей и скорости передачи. Без использования буферов вы также можете попытаться снизить скорость передачи данных (все еще выше UART)
РЕДАКТИРОВАТЬ: Да, теперь я помню, я использовал какой -то уровень смены (буферы) для своего проекта. Они совершенно дешевые и действительно * должны быть * для любого вида использования: http: // www.aliexpress.com/item/20pcs-lo ... 11638.HTML (Может быть, вы найдете в то время дешевле)
EDIT2: более дешевле (0.19euros/Piece): http: // www.aliexpress.com/item/5pcs-two ... 43189.HTML

Пито
Пт 12 августа 2016 г., 19:38
«Сдвиг уровня» не означает «буфер или драйвер». Например, вам нужно для SPI что -то вроде драйверов 74LCX244/245, которые способны продвигать красивые растущие и падающие края (много тока в кабель) на большие расстояния :)
С автомобилем вы можете попробовать можно :)

Ореховый
Пт 12 августа 2016 г., 8:34 вечера
Окончательная сборка будет на паре печатных плат с припаянными контроллерами, не должна быть проблем с расстоянием... Но аппаратный сериал должен быть для этого...

Мадиас
Пт 12 августа 2016 г., 8:55 вечера
Пито написал:«Сдвиг уровня» не означает «буфер или драйвер». Например, вам нужно для SPI что -то вроде драйверов 74LCX244/245, которые способны продвигать красивые растущие и падающие края (много тока в кабель) на большие расстояния :)
С автомобилем вы можете попробовать можно :)

Rogerclark
Пт 12 августа 2016 г. 22:00
Re: Передача через I2C в AVR

В прошлый раз, когда я попробовал это, это не сработало из -за ошибки в базовом коде Arduino AVR, которая не была зафиксирована годами. В конце концов я нашел исправление на Arduino.Форум CC и должен был редактировать AVR Core.

Но я полагаю, что они, возможно, уже исправили эту ошибку.


Однако, поскольку вы не отправляете много данных, Serial, вероятно, будет в порядке и потребует меньше компонентов (без сдвига уровня).

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


Re: эндсивство

Процессоры - это большой эндиан или маленький эндиан.
Это способ описать, как процессор внутренне хранит номера

эн.глин. Хранят ли процессор 0x1234 в памяти

0x12
0x34


или

0x34
0x12

что еще более сложно, если процессор составляет 16 бит, так как 0x12345678 может храниться как

0x5678
0x1234

так что в памяти, как одинокие байты

0x56
0x78
0x12
0x34

(Google и вы найдете гораздо лучшие объяснения)

Мадиас
Сб 13 августа 2016 г., 9:13
Хорошо, извините за то, что получил здесь, Роджер: Вы имеете в виду этот? http: // dsscircuits.com/статьи/86-арти ... ER-библиотека

Мадиас
Сб 13 августа 2016 г. 9:16 утра
Еще одна вещь (быть на теме) с сериалом, что вы всегда делаете «сериал.Доступно », потому что это не прерывает библиотеки. Это не реальная проблема, но мне нужно позаботиться об этом. Простое решение будет (на STM32, потому что у вас больше таймеров, которые вы всегдав основном необходимость) установить «сериал.Доступно «в прерывание таймера и вернуть флаг.

Rogerclark
Сб 13 августа 2016 г., 10:31
Извините, Матиас

Я не могу точно помнить, в чем проблема.

Я знаю, что мне пришлось написать рабыни I2C на мост SPI, используя Pro Mini, но когда я впервые попробовал свой код, он не сработал.

Но когда я исследовал проблему, решение было на самом деле изменить что -то библиотеку I2C AVR
Это было, вероятно, 1 год или, возможно, больше назад, и, возможно, теперь все работает нормально

Ореховый
Сб 13 августа 2016 г. 15:40
Я больше не уверен, что происходит :( И MPH, и RPM больше не работают... Я пробовал несколько вещей, но я даже вернулся к какому -то более старому коду, и он все еще не работает.......

Цифры, которые я посылаю, являются Int16 и верны до точки серийного записи.
Но на Ардуино возвращенные фигуры совершенно неверны. Числа, но никоим образом не являются правильными числами... Я даже получаю минус ценности.

Я пробовал несколько типовых конверсий, и все одинаково... Я пробовал все, о чем я могу думать. Я честно не знаю, что делать

Мадиас
Сб 13 августа 2016 г. 16:53
Черная, опять же: вы действительно уверены, что у вас есть общий наземный STM32 <---> Ардуино?

Эдогальдо
Сб 13 августа 2016 г., 17:03
Черная писала:Я больше не уверен, что происходит :( И MPH, и RPM больше не работают... Я пробовал несколько вещей, но я даже вернулся к какому -то более старому коду, и он все еще не работает.......

Цифры, которые я посылаю, являются Int16 и верны до точки серийного записи.
Но на Ардуино возвращенные фигуры совершенно неверны. Числа, но никоим образом не являются правильными числами... Я даже получаю минус ценности.

Я пробовал несколько типовых конверсий, и все одинаково... Я пробовал все, о чем я могу думать. Я честно не знаю, что делать

Ореховый
Сб 13 августа 2016 г., 17:12
Привет, извини, общая земля.
Что касается изменений. TBH я не мог действительно понять, как много я изменился: P

В любом случае, я информировал свой код из постов о спешке, и MPH снова работает. Так что это не сбой аппаратного обеспечения... Теперь мне нужно очень внимательно просмотреть это, чтобы увидеть, что его сломало и что исправило...

Я все еще думаю, что проблема зависит от типов данных
Я сейчас начну переходить через это снова...

Эдогальдо
Сб 13 августа 2016 г., 17:16
Черная писала:Привет, извини, общая земля.
Что касается изменений. TBH я не мог действительно понять, как много я изменился: P

В любом случае, я информировал свой код из постов о спешке, и MPH снова работает. Так что это не сбой аппаратного обеспечения... Теперь мне нужно очень внимательно просмотреть это, чтобы увидеть, что его сломало и что исправило...

Я все еще думаю, что проблема зависит от типов данных
Я сейчас начну переходить через это снова...

Пито
Сб 13 августа 2016 г., 17:31
Вот пример - отправить и получить через Easy Transfer с одним мини -.
Подключите RX1 с TX1, посмотрите серийную консоль USB.
Вы можете экспериментировать с кабелями и серийными скоростями :)
PS: Использование Core STM32Duino Core с реализованным буфером TX.. // Example - Easy Transfer running on a single MapleMini/BluePill // ET data channel - Connect RX1 with TX1 // For results watch usb serial console // Pito 8/2016 #include //create two objects EasyTransfer ETin, ETout; struct RECEIVE_DATA_STRUCTURE{ //put your variable definitions here for the data you want to receive //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO int rpm; int mph; }; struct SEND_DATA_STRUCTURE{ //put your variable definitions here for the data you want to receive //THIS MUST BE EXACTLY THE SAME ON THE OTHER ARDUINO int rpm; int mph; }; //give a name to the group of data RECEIVE_DATA_STRUCTURE rxdata; SEND_DATA_STRUCTURE txdata; void setup(){ Serial.begin(115200); // usb console Serial1.begin(1382400); // Easy Transfer data channel, connect RX1 and TX1 together //start the library, pass in the data details and the name of the serial port. Can be Serial, Serial1, Serial2, etc. ETin.begin(details(rxdata), &Serial1); ETout.begin(details(txdata), &Serial1); } void loop() { //first, lets read rpm and mph txdata.rpm = 12666; txdata.mph = 187; // then we will go ahead and send that data out ETout.sendData(); // and we receive the same data rxdata.rpm = 0; rxdata.mph = 0; ETin.receiveData(); // we print out what we received Serial.print(rxdata.rpm); Serial.print(" "); Serial.print(rxdata.mph); if ((rxdata.rpm != txdata.rpm) || (rxdata.mph != txdata.mph)){ Serial.println(" ERROR"); } else { Serial.println(" OK"); } delay(100); }

Ореховый
Сб 13 августа 2016 г., 19:06
Эдогальдо написал: Вы пробовали применить изменения в формуле на Leasr для RPM? Это должно это исправить.

Лучший, e.

Эдогальдо
Сб 13 августа 2016 г., 19:29
Если не использовать легкую передачу, попробуйте серийный.parseint () для чтения целочисленных значений.

Пито
Сб 13 августа 2016 г., 8:02 вечера
Другим источником проблем может быть разница в Uart Baudrates.
Maplem управляет кристаллом (afaik), промини управляется резонатором. Когда скорость UART скидка более 3-5%, данные могут быть повреждены.
Более того, 16 МГц промини-не самая лучшая «бод», так как, например, 115K2-что-то вроде 111 тыс. В реальности (-3.5%).

Ореховый
Сб 13 августа 2016 г., 8:05 вечера
Parseint, кажется, вообще не работает...

Ореховый
Сб 13 августа 2016 г., 8:14 вечера
Пито написал:Другим источником проблем может быть разница в Uart Baudrates.
Maplem управляет кристаллом (afaik), промини управляется резонатором. Когда скорость UART скидка более 3-5%, данные могут быть повреждены.
Более того, 16 МГц промини - не самая лучшая «бод», так как, например, 115K2 - что -то вроде 111 тыс. В реальности.

Пито
Сб 13 августа 2016 г. 8:18 вечера
Я бы порекомендовал вам начать работать более структурированным образом и устранить неполадки вашей системы снизу вверх.
1. Начните с малого и попытайтесь уточнить клен<--->Promini Communication - для этого вам нужны 5 линий длинных эскизов
2. Когда ваше основное общение работает, начните с целых чисел диапазона или простого перевода или чего -то, что вам нужно
3. Затем начните добавлять свои более высокие слои, такие как планировщики или сложный расчет..
;)
PS: таблицы Avr Baudrates Precision (при условии, что вы используете кристаллы) таблицы http: // Wormfood.net/avrbaudcalc.PHP/

Ореховый
Сб 13 августа 2016 г., 21:53
Думаю, я нашел проблему...
http: // Stackoverflow.COM/Вопросы/2479 ... связь
Серийная запись имеет максимальное значение 255 1 байта... Итак, мои значения, которые я посылаю ARNT, совместимо с функцией... Теперь пришло время понять, как его обойти...

Ореховый
Сб 13 августа 2016 г. 22:29
Исправил это!!!!!!!! Да, это было... просто, что вы не можете отправлять цифры выше 255 или одного байта в сериале... Нашел кое -что о том, как разделить int на два укуса, затем их отдельно и реконструировать на ARD... И это работает : D Спасибо за это.

3 дня потребовалось, чтобы найти эту проблему, Эйш

Рекснанет
Пт 23 сентября 2016 г., 9:41
Вы все еще использовали Serial2 на булавках PA2 и PA3, когда он работал?

OLIMEXINO-STM32