Espruino:Справочник по API/Класс Serial/setup(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=<ref>[https://www.espruino.com/Reference#l_Serial_setup www.espruino.com - function Serial.setup(baudrate, options)]</ref>=
=Функция Serial.setup()<ref>[https://www.espruino.com/Reference#l_Serial_setup www.espruino.com - function Serial.setup(baudrate, options)]</ref>=


==Синтаксис==
==Синтаксис==


<syntaxhighlight lang="javascript" enclose="div">
<syntaxhighlight lang="javascript">
 
Serial.setup(baudrate, options)
</syntaxhighlight>
</syntaxhighlight>


==Параметры==
==Параметры==


 
* '''baudrate''' – скорость передачи данных (по умолчанию 9600)
* '''options''' – опциональный объект с дополнительной информацией об инициализации последовательного порта (см. ниже)


==Возвращаемое значение==
==Возвращаемое значение==
Строка 21: Строка 22:
==Описание==
==Описание==


Настраивает последовательный порт, используя заданную скорость передачи данных (baudrate) и заданные настройки (options).


Например, Serial1.setup(9600,{rx:a_pin, tx:a_pin}).
Объект во втором аргументе может содержать следующее:
<syntaxhighlight lang="javascript">
{
  rx:pin,      // приемный контакт (ввод данных в Espruino) 
  tx:pin,      // отправляющий контакт (вывод данных из Espruino)
  ck:pin,      // (по умолчанию не задан) контакт для тактовой частоты
  cts:pin,    // (по умолчанию не задан)
              // контакт, обозначающий готовность передачи данных
  bytesize:8,  // (по умолчанию 8) сколько битов данных – 7 или 8
  parity:null/'none'/'o'/'odd'/'e'/'even',
              // (по умолчанию не задан) бит четности
  stopbits:1,  // (по умолчанию 1) количество стоп-битов
  flow:null/undefined/'none'/'xon',
              // (по умолчанию не задано)
              // программное управление потоками
  path:null/undefined/string
              // (только для Linux)
              // путь к используемому последовательному устройству
  errors:false // (по умолчанию «false»)
              // здесь задается, будут ли генерироваться
              // события «framing» и «parity»
}
</syntaxhighlight>
Чтобы найти на плате нужные контакты, можно посмотреть на схему с распиновкой вашей платы или поискать на плате надписи «UART» или «USART».
Если настройки rx и tx заданы не будут, в них будут заданы контакты по умолчанию (обычно это самые первые контакты на самом первом порте, поддерживающем подключенное периферийное устройство). Контакты ck и cts, если их не задать, использованы не будут.
Обратите внимание, что даже если вы поменяете контакты RX и TX, к порту Serial будут по-прежнему подключены те контакты RX и TX, которые были заданы при предыдущем вызове Serial.setup(). Поэтому вам нужно будет перенастроить их с помощью функции [https://www.espruino.com/Reference#l__global_digitalWrite digitalWrite()] или [https://www.espruino.com/Reference#l__global_pinMode pinMode()].
Если задать настройку cts, вы можете воспользоваться управлением потоком данных. Оно может быть программным (xOn/xOff) или аппаратным (только прием данных). Если в cts будет задан контакт, значение «0» будет означать, что [[Espruino]] готова к данным, а «1» – что не готова.
По умолчанию ошибки кадра (ошибки стоп-бита) и ошибки четности не генерируют события framing и parity на объекте Serial, потому что хранение этих ошибок использует дополнительную память в очереди. При получении большого количества поврежденных данных очередь может быть переполнена, а [https://www.espruino.com/Reference#l_E_getErrorFlags E.getErrorFlags()] вернет FIFO_FULL. Но если вам нужно реагировать на эти ошибки, вам нужно будет задать errors:true при инициализации объекта Serial.
На Linux-билдах устройство Serial по умолчанию не задано, так что вам нужно будет также задать путь к нему. Например:
<syntaxhighlight lang="javascript">
Serial1.setup(9600,{path:"/dev/ttyACM0"})
</syntaxhighlight>
Вы также можете настроить программную последовательную коммуникацию при помощи вот такого кода:
<syntaxhighlight lang="javascript">
var s = new Serial();
s.setup(9600,{rx:a_pin, tx:a_pin}); 
</syntaxhighlight>
 
Но для последовательной коммуникации не нужны настройки ck, cts, parity, flow и errors.


== Примеры ==
== Примеры ==
Строка 29: Строка 82:
=См.также=
=См.также=


{{ads}}
 


=Внешние ссылки=
=Внешние ссылки=
Строка 35: Строка 88:
<references />
<references />


{{Навигационная таблица/Espruino}}
{{Навигационная таблица/Портал/Espruino}}
{{Навигационная таблица/Телепорт}}

Текущая версия от 20:00, 23 мая 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Функция Serial.setup()[1]

Синтаксис

Serial.setup(baudrate, options)

Параметры

  • baudrate – скорость передачи данных (по умолчанию 9600)
  • options – опциональный объект с дополнительной информацией об инициализации последовательного порта (см. ниже)

Возвращаемое значение

Описание

Настраивает последовательный порт, используя заданную скорость передачи данных (baudrate) и заданные настройки (options).

Например, Serial1.setup(9600,{rx:a_pin, tx:a_pin}).

Объект во втором аргументе может содержать следующее:

{
  rx:pin,      // приемный контакт (ввод данных в Espruino)  
  tx:pin,      // отправляющий контакт (вывод данных из Espruino)
  ck:pin,      // (по умолчанию не задан) контакт для тактовой частоты
  cts:pin,     // (по умолчанию не задан)
               // контакт, обозначающий готовность передачи данных 
  bytesize:8,  // (по умолчанию 8) сколько битов данных – 7 или 8
  parity:null/'none'/'o'/'odd'/'e'/'even', 
               // (по умолчанию не задан) бит четности
  stopbits:1,  // (по умолчанию 1) количество стоп-битов
  flow:null/undefined/'none'/'xon', 
               // (по умолчанию не задано)
               // программное управление потоками
  path:null/undefined/string
               // (только для Linux) 
               // путь к используемому последовательному устройству 
  errors:false // (по умолчанию «false»)
               // здесь задается, будут ли генерироваться
               // события «framing» и «parity» 
 }

Чтобы найти на плате нужные контакты, можно посмотреть на схему с распиновкой вашей платы или поискать на плате надписи «UART» или «USART».

Если настройки rx и tx заданы не будут, в них будут заданы контакты по умолчанию (обычно это самые первые контакты на самом первом порте, поддерживающем подключенное периферийное устройство). Контакты ck и cts, если их не задать, использованы не будут.

Обратите внимание, что даже если вы поменяете контакты RX и TX, к порту Serial будут по-прежнему подключены те контакты RX и TX, которые были заданы при предыдущем вызове Serial.setup(). Поэтому вам нужно будет перенастроить их с помощью функции digitalWrite() или pinMode().

Если задать настройку cts, вы можете воспользоваться управлением потоком данных. Оно может быть программным (xOn/xOff) или аппаратным (только прием данных). Если в cts будет задан контакт, значение «0» будет означать, что Espruino готова к данным, а «1» – что не готова.

По умолчанию ошибки кадра (ошибки стоп-бита) и ошибки четности не генерируют события framing и parity на объекте Serial, потому что хранение этих ошибок использует дополнительную память в очереди. При получении большого количества поврежденных данных очередь может быть переполнена, а E.getErrorFlags() вернет FIFO_FULL. Но если вам нужно реагировать на эти ошибки, вам нужно будет задать errors:true при инициализации объекта Serial.

На Linux-билдах устройство Serial по умолчанию не задано, так что вам нужно будет также задать путь к нему. Например:

Serial1.setup(9600,{path:"/dev/ttyACM0"})

Вы также можете настроить программную последовательную коммуникацию при помощи вот такого кода:

var s = new Serial();
s.setup(9600,{rx:a_pin, tx:a_pin});

Но для последовательной коммуникации не нужны настройки ck, cts, parity, flow и errors.

Примеры

См.также

Внешние ссылки