Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么SX1272的每个SPI寄存器都有0x80_C_Spi_Esp32_Esp Idf - Fatal编程技术网

C 为什么SX1272的每个SPI寄存器都有0x80

C 为什么SX1272的每个SPI寄存器都有0x80,c,spi,esp32,esp-idf,C,Spi,Esp32,Esp Idf,我使用GitHub中的一个库,它提供了使用SPI读写SX1272寄存器的功能。 它工作得很好,但我不明白为什么Lora_write_ref()函数或的每个寄存器都有0x80 所以当我们假设我想写入地址0X00上的寄存器FIFO(RegFifo)时。我不能,因为函数或的寄存器为0X80。 我知道我的想法是错误的,因为它工作得很好,但为什么呢 代码来自 据了解,它是用于写入寄存器的SPI接口的一部分: 第一个字节是地址字节。它包括: 一个wnr位,写入访问为1,读取访问为0 然后是地址的7位,首先

我使用GitHub中的一个库,它提供了使用SPI读写SX1272寄存器的功能。 它工作得很好,但我不明白为什么Lora_write_ref()函数或的每个寄存器都有0x80

所以当我们假设我想写入地址0X00上的寄存器FIFO(RegFifo)时。我不能,因为函数或的寄存器为0X80。 我知道我的想法是错误的,因为它工作得很好,但为什么呢

代码来自

据了解,它是用于写入寄存器的SPI接口的一部分:

第一个字节是地址字节。它包括:

  • 一个wnr位,写入访问为1,读取访问为0
  • 然后是地址的7位,首先是MSB
据了解,它是用于写入寄存器的SPI接口的一部分:

第一个字节是地址字节。它包括:

  • 一个wnr位,写入访问为1,读取访问为0
  • 然后是地址的7位,首先是MSB

芯片的数据表上关于在寄存器索引中设置0x80位的说明是什么?芯片的数据表上关于在寄存器索引中设置0x80位的说明是什么?
/**
* Write a value to a register.
* @param reg Register index.
* @param val Value to write.
*/
void 
lora_write_reg(int reg, int val)
{
  uint8_t out[2] = { 0x80 | reg, val };
  uint8_t in[2];

  spi_transaction_t t = {
    .flags = 0,
    .length = 8 * sizeof(out),
    .tx_buffer = out,
    .rx_buffer = in  
 };

 gpio_set_level(CONFIG_CS_GPIO, 0);
 spi_device_transmit(__spi, &t);
 gpio_set_level(CONFIG_CS_GPIO, 1);
}