проблема c Serial.begin
- Войдите на сайт для отправки комментариев
Вс, 15/03/2015 - 17:44
Всем привет, вот уже два дня не могу найти решение одной проблемы... Когда посылаешь сообщение из терминала на ардуино, при скорости 300 бит в секунду, то выводится некорректное сообщение, различные символы. Кто знает как это решить? И может это проблема технического типа?
Вот код:
char Masege[64]; int i = 0; int m = 0; int n = 0; void setup(){ Serial.begin(300); Serial.println("Terminal on"); } void loop(){ if(Serial.available() > 0){ delay (1000); n = Serial.available(); for (i=0;i<n;i++){ Masege[i] = Serial.read(); } for (m=0;m<n;m++){ Serial.print(Masege[m]); Masege[m] =' '; } Serial.println(" "); } }
Я попробовал, у меня работает.
А с другими скоростями что, нормально?
-------
Только после n = Serial.available(); по-хорошему добавить бы проверку, чтобы n не превышала размер буфера. На всякий случай.
испытывал до 1200 бод, работало нормально, а дальше только 300, и все, не катит. Если что, то Arduino uno используется.
А если глянуть размер вашего буфера? И обнулить его потОм.
Мне кажеттся дело не в буфере... Достал Arduino Nano, странно, но она работает на скорости 300 бод, а Uno нет...
А 300 бод - это необходимо ?
Желательно иметь такую скорость для связи с датчиком.
все, всем благодарен я смог увеличить скорость работы датчика до 1200 бод...