• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Нужна помощь Не работает SPI

radius

New member
Пробую через SPI прочитать регистр в микросхеме СС1101. Получаю всегда 0, хотя по осциллографу видно что с микросхемы идут не нулевые данные.
Вот так инициализирую функцию SPI
Код:
void SpiInit(void)
{
SPI.begin();
SPI.setBitOrder(MSBFIRST);
SPI.setClockDivider(SPI_CLOCK_DIV16);
SPI.setDataMode(SPI_MODE0);
pinMode(SS_PIN,OUTPUT);
digitalWrite(SS_PIN,HIGH);
pinMode(MISO_PIN,INPUT);
pinMode(MOSI_PIN,OUTPUT);
}
Вот функция чтения регистра:
Код:
/****************************************************************
*FUNCTION NAME:SpiReadReg
*FUNCTION     :CC1101 read data from register
*INPUT        :addr: register address
*OUTPUT       :register value
****************************************************************/
byte SpiReadReg(byte addr)
{
  byte temp, value;
    temp = addr|READ_SINGLE;
   digitalWrite(SS_PIN, LOW);
while(digitalRead(MISO_PIN));
   SPI.transfer(temp);
  value=SPI.transfer(0);
  digitalWrite(SS_PIN, HIGH);
  return value;
}
 
Сверху Снизу