Всем привет! Я только учусь! Пробую работать с акселерометром L3GD20, установленным на плате STM32F3 Discovery. Читаю регистр WHO_AM_I (0Fh)...
CODE
SPI1_CS_Set(LOW);
SPI1_DR = 0x008F;
while (!(SPI1_SR & (1<<1)));
SPI1_CS_Set(HIGH);
USART1_SendByte(SPI1_DR>>8);
...получаю вразумительный ответ 0xD4. Теперь читаю CTRL_REG1 (20h), ответ 0x07. Записываю в него 0x1F...
Код
SPI1_CS_Set(LOW);
SPI1_DR = 0x0F20;
while (!(SPI1_SR & (1<<1)));
SPI1_CS_Set(HIGH);
И заново читаю (20h), чтобы проверить,
но SPI1_DR пуст!!!... не смотря на это анализатор показывает что акселерометр ответил верно...
Считать регистр акселерометра получается только со второго раза... Почему так??? Что я упускаю???