在哪里定义了Serial.println() ?我能看看它的源代码吗?
where is the Serial.println() defined ..? can i see source code for it?
我只是在寻找如何从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
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 我最近正在阅读opencv源代码。有没有更好的方法来在opencv库中查找类定义?
- 在不重新编译源代码的情况下更改C++(C)程序中定义的数字
- gdb 中的方法定义没有源代码
- Python:将用户定义的函数作为输入,同时保持源代码不可访问
- 如何?:将cv::Mat定义为类成员,然后在源代码文件中对其进行修改
- 自定义源代码的crypto++
- 错误:对class::method(主、头文件、源代码)的未定义引用
- 使用IEnumString完成自定义源代码
- 在标头中定义并包含在两个源代码中的结构仅在一个源代码内定义
- Libjpeg自定义源代码管理器
- 如何在cmake中添加cuda源代码的定义
- 当我使用头时,C++函数抛出错误,但如果我在源代码中定义它,就不会抛出错误
- 在Eclipse CDT的给定位置查看源代码中定义的所有宏
- 在哪里定义了Serial.println() ?我能看看它的源代码吗?
- 方法,但从未在Geant4源代码中定义
- 在源代码中查找引用的函数/变量定义
- 如何在发布源代码之前隐藏c++函数定义