exc_info
возвращает значение текущего исключения (см. Документы здесь ); к тому времени, когда вы смотрите на него в REPL, исключение больше не актуально.
Вот пример использования, который будет работать:
import sys
try:
1 / 0
except ZeroDivisionError:
print(sys.exc_info())
Важно помнить, что exc_info()
нужно вызывать из блока исключений.
NAK был большой подсказкой: контакт WriteProtect внешне потянулся и должен был управляться для основания, после этого единственная запись адреса, сопровождаемого байтами данных, успешна (первый сегмент кода).
Для чтения адреса может быть выписан сначала (использующий запись ()), и затем последовательные данные могут быть считаны, начав с того адреса.
У меня нет опыта с тем конкретным устройством, но по нашему опыту много устройств I2C имеют "причуды", которые требуют обходного решения, обычно выше уровня драйвера.
Мы используем Linux (CELinux) и драйвер устройства I2C с Linux также. Но наш код приложения также имеет нетривиальный модуль I2C, который содержит всю аналитику обходных решений для контакта со всеми различными устройствами, с которыми у нас есть опыт.
Кроме того, занимаясь проблемами I2C, я часто нахожу, что должен повторно познакомить меня с исходной спецификацией:
http://www.nxp.com/acrobat_download/literature/9398/39340011.pdf
а также использование достойного осциллографа.
Удачи,
Выше ссылки мертво, вот некоторые другие ссылки:
http://www.nxp.com/documents/user_manual/UM10204.pdf и конечно Википедия: http://en.wikipedia.org/wiki/I%C2%B2C