Показано с 1 по 10 из 11

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    51
    Сообщений
    320
    Вес репутации
    357

    По умолчанию Принять массив

    Можно ли функцией Serial.read(); принять массив байт в Ардуину?
    Или как правильно принимать массив?
    И можно ли Serial.read(); принять строковое значение, а не цифровое?

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Принять массив

    Можно ли функцией Serial.read(); принять массив байт в Ардуину?
    Принимай по байтно , складывай эти значения в массив
    PHP код:
    char Str[9] = {'c','a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
    void setup() 
    {
      
    Serial.begin(115200);
    }

    void loop() 
    {
      if (
    Serial.available() > 8) 
     { 
     for (
    int i=0; i < 9; i++) Str[i] = Serial.read();
     }
      
    Serial.println(Str);
      
    delay(1000);
    } 
    Строка это тоже массив , из строки можно также как из массива вытаскивать по одному элементу
    Примеры объявления
    char Str[9] = {'c','a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
    char Str[ ] = "carduino";
    char Str[9] = "carduino";
    Последний раз редактировалось Chip; 17.12.2011 в 15:08.

  3. #3
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    51
    Сообщений
    320
    Вес репутации
    357

    По умолчанию Re: Принять массив

    Спасибо!

  4. #4
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    51
    Сообщений
    320
    Вес репутации
    357

    По умолчанию Re: Принять массив

    Вот что у меня получается:



    Зашиваю скетч (на картинке), открываю сериал монитор, он ничего не отображает но ползунок прокрутки движется, то есть приходят пустые символы.
    После того как отправляю в порт девять единиц (111111111 SEND), начинают валиться эти единицы, а в конце какие-то символы.
    Я хотел спросить, что это за символы ?

  5. #5
    Продвинутый
    Регистрация
    15.12.2008
    Возраст
    40
    Сообщений
    229
    Вес репутации
    424

    По умолчанию Re: Принять массив

    приходят пустые символы
    в функции println /r/n идут. следующая строка

    что это за символы ?
    напиши char Str[10];
    должно быть место для окончания строки. тогда не будет лишних символов
    Последний раз редактировалось manu_245; 17.12.2011 в 23:03.

  6. #6
    Продвинутый
    Регистрация
    03.06.2008
    Возраст
    51
    Сообщений
    320
    Вес репутации
    357

    По умолчанию Re: Принять массив

    Спасибо, так лучше!!!!!)))))))))))))

  7. #7
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    56
    Сообщений
    13,381
    Вес репутации
    10

    По умолчанию Re: Принять массив

    Ну это смотря что отправлять
    тебе нужно Serial.print(78, BYTE)
    PHP код:
    Serial.print(78) передается как "78"
    Serial.print(78, BYTE) выводит "N"
    Serial.print(78, BIN) выводит  "1001110"
    Serial.print(78, OCT) выводит "116"
    Serial.print(78, DEC) выводит "78"
    Serial.print(78, HEX) выводит "4E"
    Serial.println(1.23456, 0) выводит "1"
    Serial.println(1.23456, 2) выводит "1.23"
    Serial.println(1.23456, 4) выводит "1.2346" 
    Последний раз редактировалось Chip; 08.02.2012 в 12:43.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •