Arduino/Freeduino имеет встроенный контроллер для последовательной передачи данных, который может использоваться как для связи между Arduino/Freeduino устройствами, так и для связи с компьютером. На компьютере соответствующее соединение представлено либо обычным COM-портом (в случае Arduino Single-Sided Serial Board), либо USB COM-портом, который появляется в системе после установки необходимого драйвера.
Связь происходит по цифровым портам 0 и 1, и поэтому Вы не сможете использовать их для цифрового ввода/вывода если используете функции последовательной передачи данных.
Serial.begin(long);
Вызов:
Serial.begin(скорость_передачи);
Описание:
Устанавливает скорость передачи информации COM порта битах в секунду для последовательной передачи данных. Для того чтобы поддерживать связь с компьютером, используйте одну из этих нормированных скоростей: 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, или 115200. Также Вы можете определить другие скорости при связи с другим микроконтроллером по портам 0 и 1.
Параметры:
скорость_передачи: скорость потока данных в битах в секунду.
Пример:
Serial.begin(9600); //устанавливаем скорость 9600 бит/сек
Serial.available(void);
Вызов:
count = Serial.available();
Описание:
Принимаемые по последовательному порту байты попадают в буфер микроконтроллера, откуда Ваша программа может их считать. Функция возвращает количество накопленных в буфере байт. Последовательный буфер может хранить до 128 байт.
Возвращаемое значение:
Возвращает значение типа uint8_t (typedef uint8_t byte;) – количество байт, доступных для чтения, в последовательном буфере, или 0, если ничего не доступно.
Пример:
if (Serial.available() > 0) { // Если в буфере есть данные
// здесь должен быть прием и обработка данных
}
Serial.read(void);
Вызов:
char = Serial.read();
Описание:
Считывает следующий байт из буфера последовательного порта.
Возвращаемое значение:
Первый доступный байт входящих данных с последовательного порта, или -1 если нет входящих данных.
Описание:
Записывает данные в последовательный порт. Данные посылаются как байт или последовательность байт; для отправки символьной информации следует использовать функцию print().
Параметры:
val: переменная для передачи, как единственный байт
str: строка для передачи, как последовательность байт
buf: массив для передачи, как последовательность байт
len: длина массива
Serial.flush(void)
Вызов:
Serial.flush();
Описание:
Очищает входной буфер последовательного порта. Находящиеся в буфере данные теряются, и дальнейшие вызовы Serial.read() или Serial.available() будут иметь смысл для данных, полученных после вызова Serial.flush().
Serial.print(b) если b имеет тип byte или char, выводит в порт само число b.
char b = 79;
Serial.print(b); //выдаст в порт символ «O»
Serial.print(b) если b имеет целый тип, выводит в порт десятичное представление числа b.
int b = 79;
Serial.print(b); //выдаст в порт строку «79»
Serial.println()
Описание:
Функция Serial.println аналогична функции Serial.print, и имеет такие же варианты вызова. Единственное отличие заключается в том, что после данных дополнительно выводятся два символа – символ возврата каретки (ASCII 13, или '\r') и символ новой линии (ASCII 10, или '\n').
Как нетрудно догадаться, это реализовано простым добавлением вызова функции:
void Print::println(char c)
{
print( c );
println();
}
Пример 1 и пример 2 выведут в порт одно и то же:
Пример 1:
int b = 79;
Serial.print(b, DEC); //выдаст в порт строку «79»
Serial.print("\r\n"); //выведет символы "\r\n" – перевод строки
Serial.print(b, HEX); //выдаст в порт строку «4F»
Serial.print("\r\n"); //выведет символы "\r\n" – перевод строки
Пример 2:
int b = 79;
Serial.println(b, DEC); //выдаст в порт строку «79\r\n»
Serial.println(b, HEX); //выдаст в порт строку «4F\r\n»
В мониторе последовательного порта получим:
79
4F
читать далее:
Дополнительно:
Ссылки на использованные материалы:
(или же в каталоге ArduinoIDE \reference\HomePage.html )
Комментарии (5)
RSS свернуть / развернуть(в интересующий вас вид памяти):
ATmega8:
— 8 Кбайт программируемой памяти (FLASH)
— 1 Кбайт ОЗУ(RAM)
— 512 байт энергонезависимой памяти (EEPROM)
ATmega168:
— 16 Кб FLASH
— 1 Кб RAM
— 512 байт EEPROM
ATmega328:
— 32 Кб FLASH
— 2 Кб RAM
— 512 байт EEPROM
Zoltberg
Zoltberg
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.