gpt4 book ai didi

c - 怎么可能正在使用变量但从未在 C 中定义?

转载 作者:行者123 更新时间:2023-12-03 23:51:29 24 4
gpt4 key购买 nike

hal.c 中的第 137 行你会看到它确实如此:

SPDR = data;

在 hal_spi_write() 函数中。

SPDR 在哪里定义的?

我已经下载了整个 source code并搜索了“SPDR”但没有成功。

希望社区中的一位专家能够参与进来。

最佳答案

SPDR 不完全是一个变量——它是一个硬件寄存器。具体来说,它是 Atmel AVR 处理器上的 SPI 数据寄存器:

19.5.3. SPDR – SPI data register

  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 undefined

The SPI Data Register is a read/write register used for data transfer between the Register File and the SPI Shift Register. Writing to the register initiates data transmission. Reading the register causes the Shift Register Receive buffer to be read.

有关详细信息,请参阅您正在使用的 CPU 的数据表。上面的片段来自 ATmega48/88/168 datasheet ,例如(第 170 页)。

关于c - 怎么可能正在使用变量但从未在 C 中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17536644/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com