【发布时间】:2021-12-12 02:33:32
【问题描述】:
我有一个关于 SPI 总线的问题。我经常在一些图书馆看到 我找到了,但我不明白它是如何工作的。
我找到的一个库中的快速示例。 SPI写作:
static void nRF24_WriteRegister(uint8_t reg, uint8_t val)
{
uint8_t tmp[2];
tmp[0] = NRF24_CMD_W_REGISTER | reg;
tmp[1] = val;
NRF24_CSN_LOW;
nRF24_SendSpi(tmp, 2);
NRF24_CSN_HIGH;
}
它是如何工作的,如果我们将相同的帧寄存器(我们正在写入)和数据 到这个寄存器?
但对我来说更令人困惑的是从 SPI 读取:
static uint8_t nRF24_ReadRegister(uint8_t reg)
{
uint8_t result;
reg = NRF24_CMD_R_REGISTER | reg;
NRF24_CSN_LOW;
nRF24_SendSpi(®, 1);
nRF24_ReadSpi(&result, 1);
NRF24_CSN_HIGH;
return result;
}
为什么我们必须先发送一些信息然后再阅读?
【问题讨论】: