de-vraag
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
Mads Skjern
Mads Skjern
Вопрос

Что это означает в I2C, «NACK получено»?

Я читаю о I2C. На этом сайте:

http://playground.arduino.cc/Main/WireLibraryDetailedReference#endTransmission

В нем говорится, что endTransmission () может возвращать один из следующих кодов состояния:

  • 0: успешная отправка.
  • 1: слишком большой буфер для буфера twi. Этого не должно быть, поскольку длина буфера TWI, установленная в twi.h, эквивалентна длине буфера отправки, заданной в Wire.h.
  • 2: адрес был отправлен и получен NACK. Это проблема, и мастер должен отправить условие STOP.
  • 3: Данные были отправлены и получен NACK. Это означает, что подчиненному больше не нужно отправлять. Мастер может отправить условие STOP или повторный START. 4: Произошла еще одна ошибка twi (например, главный арбитраж с потерянным автобусом).

Если я не приложу ничего к моему Arduino (или с подтягивающими резисторами для SDA/SCL), я всегда получаю статус 2. Но как можно получить NACK (или что-либо), когда с ним не с кем общаться? Означает ли это что-то еще?

Вот мой пример кода

#include "Wire.h"
void setup() {
  Serial.begin(9600);
  Wire.begin();
}
void loop()  {
  Wire.beginTransmission(42);
  Wire.write(0);
  byte status = Wire.endTransmission();
  Serial.println(status);//always prints 2
}
8 2016-03-15T20:46:43+00:00 1
Arduino
i2c
rossp
15-го марта 2016 в 9:03
2016-03-15T21:03:41+00:00
Дополнительно
Источник
Редактировать
#56788817

A NACK сигнализируется слотом подтверждения, в котором SDA остается высоким при циклах SCL под управлением мастера.

Поскольку high - это не-управляемое состояние выталкиваемой шины, при отсутствии периферийного устройства на выбранном адресе для положительного подтверждения путем его вытягивания условие NACK будет пассивно результат.

4
0
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Roxana Elizabeth CASTILLO Avalos
Зарегистрирован 4 дня назад
2
Hideo Nakagawa
Зарегистрирован 5 дней назад
3
Sergiy Tytarenko
Зарегистрирован 1 неделю назад
4
shoxrux azadov
Зарегистрирован 1 неделю назад
5
Koreets Koreytsev
Зарегистрирован 1 неделю назад
© de-vraag 2022
Источник
arduino.stackexchange.com
под лицензией cc by-sa 3.0 с атрибуцией