Почему ИЛИ каждый регистр SPI SX1272 с 0x80 - PullRequest
0 голосов
/ 30 апреля 2019

Я использую библиотеку от GitHub, которая дает функциональные возможности для чтения и записи в регистр SX1272 с SPI.Это прекрасно работает, но я не понимаю, почему функция Lora_write_ref () ИЛИ каждый регистр с 0x80.

Так, когда, скажем, я хочу записать в регистр FIFO (RegFifo) по адресу 0X00.Я не могу, потому что функции или регистр с 0X80.Я знаю, что то, что я считаю неправильным, потому что оно работает просто отлично, но почему?

Код от https://github.com/Inteform/esp32-lora-library

/**
* 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);
}    

1 Ответ

1 голос
/ 30 апреля 2019

Согласно данным SX1272 / 73 это часть интерфейса SPI для записи регистров:

Первый байт - это байт адреса.Он содержит:

  • Бит wnr, равный 1 для доступа на запись и 0 для доступа на чтение.
  • Затем 7 бит адреса, сначала MSB.
...