Espruino:Справочник по API/Класс Serial/setup(): различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 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" enclose="div"> | ||
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" enclose="div"> | |||
{ | |||
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" enclose="div"> | |||
Serial1.setup(9600,{path:"/dev/ttyACM0"}) | |||
</syntaxhighlight> | |||
Вы также можете настроить программную последовательную коммуникацию при помощи вот такого кода: | |||
<syntaxhighlight lang="javascript" enclose="div"> | |||
var s = new Serial(); | |||
s.setup(9600,{rx:a_pin, tx:a_pin}); | |||
</syntaxhighlight> | |||
Но для последовательной коммуникации не нужны настройки ck, cts, parity, flow и errors. | |||
== Примеры == | == Примеры == |
Версия от 21:50, 25 февраля 2021
Функция 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.
Примеры
См.также
Внешние ссылки