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