1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 99

stm32 и I2C Slave

21.09.2020, 22:54. Показов 9929. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, не работает I2C slave использую STM32CubeMX и STM32CubeIDE.
Пробовал через прерывания затем через DMA, ни в какую не хочет принимать данные, да использую HAL библиотеку.
Скорее всего я что-то делаю не так.
Дайте ссылку на рабочий пример или подскажите, мучаюсь уже 2 недели.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.09.2020, 22:54
Ответы с готовыми решениями:

I2C slave
Приветствую всех! Пытаюсь реализовать I2C Slave на плате stm32f429-disco (нужно эмулировать один датчик). Мой слэйв должен принять 0х00...

I2C slave: прием и передача
Добрый день! Понадобилось поднять I2C-slave режим на stm32, чтобы данные принимались и передавались, но что-то не могу догнать как все...

I2C Slave STOP Event
Привет. Есть две отладочные платы на базе stm32f103. Есть желание заставить их общаться по I2C. Сначала я сделал обмен на одной...

25
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 99
29.09.2020, 18:35  [ТС]
Студворк — интернет-сервис помощи студентам
Всем спасибо, ТЕМА ЗАКРЫТА.
Все работает как надо. код который я выложил рабочий.
0
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 99
30.09.2020, 21:42  [ТС]
Всем привет, я опять вернулся, подскажите какой функцией можно узнать количество принятых байт.
И вообще возможно ли это?
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
05.10.2020, 16:10
Создайте переменную, и установите в прерывании приема байта ее увеличение на единицу. Вот вам и будет "количество принятых байт" в коде
0
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 99
05.10.2020, 22:09  [ТС]
У меня была такая идея, но почему-то не заходит в прерывание, может я не то пытаюсь использовать:
void HAL_I2C_SlaveRxCpltCallback(I2C_HandleTy peDef *hi2c)

Добавлено через 1 час 38 минут
Заметил, что заходит в прерывание
void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *hi2c)
с ошибкой HAL_I2C_ERROR_AF - как я понял это отсутствует подтверждение адреса, но на осциллограмме видно что все ACK и NACK присутствуют, но ACK после получения адреса немного запаздывает (предполагаю, что это задержка на проверку адреса).
0
1 / 1 / 2
Регистрация: 06.07.2009
Сообщений: 99
05.10.2020, 22:26  [ТС]
Вот осциллограммы на Снимке видно СТАРТ АДРЕС(W) РЕГИСТР РЕСТАРТ АДРЕС(R)
на СНИМКЕ_2 конец АДРЕС(R) и два байта данных.
W и R - бит запись и чтения соответственно.
Миниатюры
stm32 и I2C Slave   stm32 и I2C Slave  
0
 Аватар для Voland_
1983 / 1276 / 131
Регистрация: 04.01.2010
Сообщений: 4,607
06.10.2020, 10:20
есть подозрение, что у вас шина I2C неправильно собрана. Завалены фронты (попробуйте существенно уменьшить битрейт, допустим, используйте 10к вместо 100/400кГц или сколько там у вас). И, самое важное - SDA ведет себе по меньшей мере странно - SDA не должна дергаться с клоком.

Добавлено через 4 минуты
...собственно, вам про это уже говорили: stm32 и I2C Slave
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.10.2020, 10:20

I2C в режиме slave и библиотека CPAL.
Всем добрый день! Вопрос про I2C в режиме slave и библиотеку Lib CPAL. Процессор STM32 F103 VET6 на отладочной плате от WaveShare ...

Master/Slave I2C для ARM на LUFA
Здравствуйте, в качестве лабы в универе задали реализацию общения Slayer и Master по i2p для arm после мучительной пытки гугл всё же...

STM32 F103 и i2c
Здравствуйте! В общем то хотел по шине подключить дисплей (который прекрасно работал с ардуино), но столкнулся с проблемой, что...

STM32 I2C + HP03M
Доброго времени суток! Знаю, что тема уже заезжена, но опять проблема с I2C2. К STM32F4Dyscovery (частота ядра 160MHz) подключен датчик...

STM32 -> I2C -> LCD2004
Добрый день, символьный 4-строчный LCD связан по шине I2C c платой Nucleo F412ZG. Запитан дисплей от вывода 3,3V Nucleo, сама Nucleo...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru