NRF24L01 Команды сброса и чтения полезной нагрузки не работают

Я использую STM32F103 в качестве приемника.

Я читаю FIFO STATUS и регистр STATUS, затем выполняю команду FLUSH_RX через SPI.

Я постоянно читаю регистры FIFO_STATUS и STATUS. Прежде чем включить передатчик, все в порядке. Регистры говорят мне, что в RX FIFO нет данных. Как только я включаю устройство-передатчик, бит RX_DR в регистре STATUS устанавливается на высокий уровень, а регистр FIFO_STATUS сообщает, что в RX FIFO есть данные. Хотя я выполняю команду Flush, ничего не происходит.

Регистр FIFO_STATUS по-прежнему говорит, что в FIFO есть данные.

void Flush_RX()
{
  csn_low();
  HAL_SPI_Transmit(&hspi1, (uint8_t *)COMD_FLUSH_RX,1, 150);
  while( (HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY) ){}
  csn_high();
  HAL_Delay(1);
}

У меня похожая проблема с командой READ_RX_PAYLOAD. Когда вывод IRQ становится низким и бит RX_DR установлен на высокий уровень, я выполняю команду, но я читаю содержимое регистра STATUS. Я не могу прочитать данные, отправленные с TX.

Любое руководство, помощь, комментарий будут оценены. Заранее спасибо.

0 ответов

Другие вопросы по тегам