在哪里定义了Serial.println() ?我能看看它的源代码吗?

where is the Serial.println() defined ..? can i see source code for it?

本文关键字:定义 源代码 println Serial 在哪里      更新时间:2023-10-16

我只是在寻找如何从arduino通过串口发送/写入日期到PC .反之亦然。

花了这么多时间,我自己也想不明白,我没有什么问题要问了。我希望你们能给我指路。

首先,我发现我可以使用Serial.println()函数发送一些数据,然后,在pc端,它只是检查和读取端口(/dev/tty..)。但是,这个过程到底是如何运作的呢?所以,如果你使用serial.println()它知道写在哪里?

我也发现这与UART通信有关。但是,在Hardware.cpp文件中,我找不到任何对UART的函数调用。

第三有像extern HardwareSerial Serial的代码;那么这个序列的定义在哪里?

第四似乎有环缓冲区串行缓冲区。那么,当数据被发送时,是什么以及谁将数据填充到Hardware.cpp中的缓冲区中呢?

请原谅我愚蠢的问题。我只是很好奇…

如您所知,要编译草图,您必须选择Arduino板和插入的COM端口。这样董事会就知道该把数据发送到哪里。外部USB端口,例如在mega上的数字引脚0和1。因此,其中一个引脚用于传输数据(TX),另一个用于接收数据(RX)。

2和3)是的,它与UART有关,即与我上面写的RX和TX线有关。
USB端口定义是在我的情况下:
C:Program Files (x86)Arduinohardwarearduinofirmwares atmegaxxu2
打印定义如下:
C:Program Files (x86)Arduinohardwarearduinocores arduino
在一些库文件中,UART的类定义可能是

4),例如你调用Serial.println("blabla");文本"blabla"一个字符一个字符地压入环形缓冲区。如果单板将文本发送到PC上的串行监视器,则将其内容分别清空,通过USB电缆将其内容发送到终端程序(串行监视器)。如果你收到数据,然后再次填充一个环缓冲区(接收环缓冲区)

有关更多信息,我建议您阅读:
http://arduino.cc/de/Reference/Serial