Пробую через SPI прочитать регистр в микросхеме СС1101. Получаю всегда 0, хотя по осциллографу видно что с микросхемы идут не нулевые данные.
Вот так инициализирую функцию SPI
Вот функция чтения регистра:
Вот так инициализирую функцию 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;
}