Перейти к содержанию
    

STM32F411 и I2C

Просьба сильно не пинать ) По производственной необходимости практически с нуля осваиваю работу с  контроллером STM32 и интерфейсом I2C. Из оборудования есть плата STM32F411E-DISCO. На ней есть акселерометр LSM303AGR. Вот с ней и надо наладить связь по интерфейсу I2C. Проект собирал на STM32CubeMX STM32CubeIDE. Делал всё вот по этой статье https://microtechnics.ru/stm32-i2c-nastrojka-i-primer-ispolzovaniya-shiny-i2c/#more-1484. Связь установить не удалось. Осциллографом выяснил, что посылка по I2C даже не выходит из контроллера. Подскажите, пожалуйста, куда копать?

Сам проект лежит вот здесь: https://disk.yandex.ru/d/qIG5v3nBg46VJA

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


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

Пример есть готовый в Кубе stm32cube_fw_f4_v1280.zip


STM32Cube_FW_F4_V1.28.0\Projects\STM32F411E-Discovery\Demonstrations

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


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

Через Transmit и Receive у меня тоже не получалось читать датчики, но для этой цели хорошо подошла функция:
HAL_I2C_Mem_Read( &hi2c1, devAddress << 1, regAddress, 1, pData, 2, I2C_TIMEOUT10);

куда сразу закладываем номер регистра данных - regAddress и адрес буфера на 2 байта, куда надо прочесть данные - pData. Т.е. всё делает одна эта функция.

В вашем случае это будет выглядеть так:

HAL_I2C_Mem_Read( &hi2c1, I2C_ACL_ADRESS << 1, rgMgnAdress, 1, &rgMgnData, 2, I2C_TIMEOUT10);
Внимание! в качестве rgMgnAdress следует класть число (в вашем случае 0x4F), а не адрес памяти, где оно лежит! Вероятно в этом ваша ошибка.

HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);

 

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


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

Пошёл процесс. :) Сигнал на шине i2c появился. И появился новый вопрлс. Как в STM32IDE режиме выполнения проекта посмотреть на экране значение считанныз по i2c данных? В этом режиме они не отображаются на вкладке "Live Expressions".

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


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

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

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

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

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

×
×
  • Создать...