где определяется Serial.println () ..? Могу ли я увидеть исходный код?

Я просто ищу, как отправить / записать дату на ПК через последовательный порт от Arduino.

У меня мало вопросов, чтобы спросить после того, как я потратил так много времени и сам не мог понять это.
Я надеюсь, что вы, ребята, можете направить меня, пожалуйста.

Первый, я нашел, что могу использовать Serial.println () функция для отправки некоторых данных, затем на стороне ПК она просто проверяет и читает порт (/ dev / tty ..).
Но как этот процесс на самом деле работает под капотом? Итак, если вы используете serial.println (), он знает, куда писать?

второй я также обнаружил, что это как-то связано с коммуникацией UART .. Но внутри Hardware.cpp файл, я не смог найти ни одного вызова функции для UART.

В третьих есть такой код, как extern HardwareSerial Serial;
Тогда где же определение этого сериала?

четвертый Кажется, есть кольцевой буфер для последовательного буфера. Итак, когда данные отправляются тогда, что и кто заполняет данные в этот буфер внутри Hardware.cpp?

пожалуйста, прости мой глупый вопрос .. мне просто так любопытно об этом ..

3

Решение

Как вы знаете, чтобы скомпилировать эскиз, вы должны выбрать плату Arduino и COM-порт, к которому она подключена. Таким образом, плата знает, куда отправлять данные. Вне зависимости от порта USB, который у вас есть, например, на мегапикселе с цифровыми контактами 0 и 1. Таким образом, один из этих контактов предназначен для передачи данных (TX), а другой — для приема данных (RX).

2 и 3) Да, это как-то связано с UART, а именно с проводами RX и TX, о которых я писал выше.
Определения USB-порта в моем случае здесь:
C: \ Program Files (x86) \ Arduino \ hardware \ arduino \ firmwares \ atmegaxxu2
Определения печати здесь:
C: \ Program Files (x86) \ Arduino \ hardware \ arduino \ cores \ arduino
и есть некоторые библиотечные файлы, где, вероятно, определения классов для UART

4) для примера вы называете Serial.println («блабла»); текст «blabla» помещается символом char в кольцевой буфер. если он отправляет текст на Serial Monitor на ПК, то я очищаю его содержимое и, соответственно, отправляет его через USB-кабель в программу Terminal (Serial Monitor). Если вы получаете данные, то снова заполняете кольцевой буфер (Получите кольцевой буфер)

Для получения дополнительной информации, я рекомендую вам прочитать:
http://arduino.cc/de/Reference/Serial

1

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector