在hal.c的第137行,你会看到它:
SPDR = data;
Run Code Online (Sandbox Code Playgroud)
在hal_spi_write()函数中.
SPDR在哪里定义?
我已经下载了整个源代码并搜索了"SPDR",但没有运气.
非常感谢社区的一位专家.
SPDR并不是一个变量 - 它是一个硬件寄存器.具体来说,它是Atmel AVR处理器上的SPI数据寄存器:
19.5.3.SPDR - SPI数据寄存器
Run Code Online (Sandbox Code Playgroud)Bit 7 6 5 4 3 2 1 0 0x2E (0x4E) | MSB | | | | | | | LSB | SPDR Read/write R/W R/W R/W R/W R/W R/W R/W R/W Initial value X X X X X X X X undefinedSPI数据寄存器是一个读/写寄存器,用于寄存器文件和SPI移位寄存器之间的数据传输.写入寄存器会启动数据传输.读取寄存器会导致读取移位寄存器接收缓冲区.
有关更多信息,请参阅您正在使用的CPU的数据表.上面的代码段来自ATmega48/88/168数据表,例如(第170页).