serial - Робота з UART1

Функції для читання/запису даних з UART1 Підключення до UART1 здійснюється через піни RX 47 та TX 48, які знаходяться на роз’ємі розширення.

Приклад:

 1local buffer = 'a'
 2local up, down = false, false
 3
 4function lilka.init()
 5    serial.begin(115200);
 6end
 7
 8function lilka.update(delta)
 9    while serial.available() > 0 do
10        buffer = buffer .. serial.read(serial.available())
11        if string.len(buffer) > 40 then
12            console.print(buffer)
13            buffer = 'a'
14        end
15    end
16
17    local keyboard = controller.get_state()
18    if keyboard.up.pressed or keyboard.down.pressed then
19        serial.print("button: ")
20        if keyboard.up.pressed then
21            serial.println("up")
22        elseif keyboard.down.pressed then
23            serial.println("down")
24        end
25    end
26    if keyboard.b.pressed then
27        util.exit()
28    end
29end
30
31function lilka.draw()
32    display.fill_screen(display.color565(0, 0, 0))
33    display.set_cursor(20, 20)
34    display.print(buffer)
35end
class serial
static available()

Перевіряє кількість доступних байтів для читання.

Return type:

integer

Usage:

1local bytesAvailable = serial.available()
2print("Available bytes:", bytesAvailable)
static begin(baud, config)

Ініціалізує послідовний порт із заданими параметрами.

Parameters:
  • baud (integer) – швидкість передачі даних (за замовчуванням 115200)

  • config (integer) – конфігурація порту (за замовчуванням SERIAL_8N1)

Usage:

1serial.begin(9600, serial.SERIAL_8N1)
static peek()

Читає наступний байт із буфера без його видалення.

Return type:

integer

Usage:

1local nextByte = serial.peek()
2print("Next byte:", nextByte)
static print(...)

Пише дані у послідовний порт.

Parameters:

vararg (any) – значення для виведення

Usage:

1serial.print("Hello, ")
2serial.print(123)
static println(...)

Пише дані у послідовний порт з переходом на новий рядок.

Parameters:

vararg (any) – значення для виведення

Usage:

1serial.println("Привіт, світ!")
static read(count)

Читає дані з послідовного порту.

Parameters:

count (integer) – максимальна кількість байтів для читання (опціонально)

Returns:

якщо count задано, повертає рядок; якщо ні — окремий байт

Return type:

str or integer

Usage:

1local data = serial.read(10)
2print("Data:", data)
static setTimeout(timeout)

Встановлює таймаут для операцій читання/запису.

Parameters:

timeout (integer) – час у мілісекундах

Usage:

1serial.setTimeout(1000)
static write(...)

Записує дані в послідовний порт.

Parameters:

vararg (any) – дані для запису (рядки, числа тощо)

Usage:

1serial.write("Data")
2serial.write(255)