Проблема чтения ADXL345 - PullRequest
       11

Проблема чтения ADXL345

0 голосов
/ 30 января 2020

Я взаимодействую с ADXL345 с SAMC21 для связи SPI и пытаюсь прочитать DEVICEID с частотой 4 МГц, но мне нужно прочитать данные как минимум 5 раз, чтобы получить правильный вывод, почему это не происходит в одной попытке. если я не включу l oop в следующий код, он не получит DEVICEID.

void SPI_read (адрес uint32_t) {

PORT->Group[0].OUTCLR.reg=1<<CS;
volatile uint32_t temp=0;
for(char i=5;i>0;i--)
{

    while(SERCOM1->SPI.INTFLAG.bit.DRE==0);
    SERCOM1->SPI.DATA.reg=(0x80|address);        /* for read operation*/

    while(SERCOM1->SPI.INTFLAG.bit.RXC==0);

    temp=SERCOM1->SPI.DATA.reg;
}
PORT->Group[0].OUTSET.reg=1<<CS;

}

...