Сёха

Чтение после записи, SPI не принимает байт, STM32F3+L3GD20

6 сообщений в этой теме

Сёха    34

Всем привет! Пробую работать с акселерометром L3GD20, установленным на плате STM32F3 Discovery. Читаю регистр WHO_AM_I (0Fh)...

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 пуст!!!... не смотря на это анализатор показывает что акселерометр ответил верно...


1.thumb.jpg.a371111b021c2b5f6c17f3cbcd84c6e5.jpg


Считать регистр акселерометра получается только со второго раза... Почему так??? Что я упускаю???

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
GOR23    29

Может я чего не понял, но вообще spi так и работает. Посылаешь команду, тебе приходит ответ на прошлую, если следующей команды слать не нужно, а ответ нужен то ff послать. Возможны конечно варианты, но в основном так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Yurkin2015    247
11 минуту назад, GOR23 сказал:

вообще spi так и работает

У автора SPI обмен двухбайтовый, то есть за один раз посылается байт команды и тут же второй байт для считывания ответа.

3 часа назад, Сёха сказал:

но SPI1_DR пуст!!!

Что значит пуст? Какая-то комбинация нулей-единичек должна быть обязательно :) Или Вы по УСАРТу отправляете принятый байт на комп и на экране пусто?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Сёха    34
2 часа назад, Вуйко сказал:

А где сам код чтения из регистра данных? Ошибка там где-то может быть.

В топике!

1 час назад, Yurkin2015 сказал:

Что значит пуст? Какая-то комбинация нулей-единичек должна быть обязательно...

Пуст это когда в регистре комбинация из нулей!)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...