我试图了解微控制器是如何工作的,基本上。至少从软件开发人员的角度来看。我对“make-files”、编译和链接过程以及低级编程有一些基本的了解。但我想学习的是更接近硬件的编程。
所以我开始剖析 Arduino 的 HardwareSerial 代码(HardwareSerial.c 和 HardwareSerial.h)。我无法弄清楚 UBRRH(或 UBRR0H)的定义位置,这意味着我们有 serial0(Arduino-Uno 的唯一一个)。我的猜测是电路板的制造商需要以某种方式提供这个。我认为根据我使用的目标板,编译不同的代码。因此,如果我为 Arduino-Uno 编译代码,编译后的文件将以某种方式包含例如 UBRRH 的定义。那么 Arduino IDE 是如何知道我正在编译的板子的呢?
我的目标是最终能够编写自己的串行协议。甚至可能设计我自己的电路板..尽管我创建的唯一“电路板”是 H 桥,但是嘿,瞄准高...