Может я невнимательно смотрел, но при чтении мастером в конце приема последнего бита он не должен держать линию (выдать NACK), просто я не услышал этого момента, а он важен для новичков.
Посоветуйте во многих проектах на hal Иза коммутационных помех иза того что oled display соединяется кабелем виснет микроконтроллер ,это точно Иза i2c может есть какой-то способ делать переинициализацию например раз в секунду по таймеру или отказаться от hal?
Очевидно, что проблема не в HAL, поскольку это всего лишь абстракция над управляющими регистрами. Подскажите, какой длины у вас кабель и на какой скорости вы запускаете I2C?
Viktor Prutyanov кабель 40 см ,скорость 100 килогерц рядом мощный ШИМ до 100 ампер , в библиотеке hal_i2c.c в функциях есть цыклы do while может там затык при помехах ,на Ардуино линии по 25 метров и никаких зависаний Из-за i2c ,ну потерялись данные следующие пришли.
Как то не логично темно зеленые полосы, типа мы там читаем, но это не точно, это програмный пулинг? По идее должно быть по фронту или по срезу чтение состояния SDA. ;)
Да полный интернет описаний мастера. Только ленивый не сделал еще "оБуЧаЮщЕе" видео или статью на эту тему. Слэйв сделайте кто-нибудь путёвый на СТМ32?! Те примеры, что есть в сети, какие-то однобокие все. Как сделать, чтобы контроллер, скажем, прикидывался EEPROM?
@@Βιτάλης-χ1π я, в итоге, сделал сам. Сначала на F100, думал, потом перекину код на восьминогую G030, а там оказался модуль и2ц по-другому устроен. Пришлось еще раз с ноля писать.