& # 39; IOError: [Errno 5] Ошибка ввода / вывода & # 39; при использовании SMBus для аналогового чтения через RPi

Вдохновленный большим числом IvanD, я пришел к этому:

SELECT DATE_ADD('2015-10-21', INTERVAL c.number DAY)    AS DATE
FROM 
(
    SELECT singles + tens + hundreds+thousands number FROM 
    ( 
        SELECT 0 singles
        UNION ALL SELECT   1 UNION ALL SELECT   2 UNION ALL SELECT   3
        UNION ALL SELECT   4 UNION ALL SELECT   5 UNION ALL SELECT   6
        UNION ALL SELECT   7 UNION ALL SELECT   8 UNION ALL SELECT   9
    ) singles JOIN 
    (
        SELECT 0 tens
        UNION ALL SELECT  10 UNION ALL SELECT  20 UNION ALL SELECT  30
        UNION ALL SELECT  40 UNION ALL SELECT  50 UNION ALL SELECT  60
        UNION ALL SELECT  70 UNION ALL SELECT  80 UNION ALL SELECT  90
    ) tens  JOIN 
    (
        SELECT 0 hundreds
        UNION ALL SELECT  100 UNION ALL SELECT  200 UNION ALL SELECT  300
        UNION ALL SELECT  400 UNION ALL SELECT  500 UNION ALL SELECT  600
        UNION ALL SELECT  700 UNION ALL SELECT  800 UNION ALL SELECT  900
    ) hundreds
     JOIN 
    (
        SELECT 0 thousands
        UNION ALL SELECT  1000 UNION ALL SELECT  2000 UNION ALL SELECT  3000
        UNION ALL SELECT  4000 UNION ALL SELECT  5000 UNION ALL SELECT  6000
        UNION ALL SELECT  7000 UNION ALL SELECT  8000 UNION ALL SELECT  9000
    ) thousands
    ORDER BY number DESC
) c  
WHERE c.number BETWEEN 
0 
AND
DATEDIFF('2016-10-08', '2015-10-21')
16
задан ForceBru 19 May 2015 в 12:15
поделиться

3 ответа

Хотя эта ветка старая, я хочу поделиться своим мнением, надеясь, что кому-то еще может помочь, поскольку во всех постах, с которыми я сталкивался, не упоминалось об этом потенциальном исправлении.

Я столкнулся с подобной проблемой, но с другим оборудованием (MCP23017 и ЖК-дисплей).

После погони за проблемой в течение некоторого времени я обнаружил, что проблема не в программном обеспечении, а скорее в аппаратном. В частности, подтягивающие резисторы на линиях SCL и SDA.

RPI (3 в моем случае) имеет резисторы 1,8 кОм, а на моем ЖК-дисплее также установлены некоторые подтягивающие резисторы (~ 2,2 кОм). Запуск ЖК-дисплея никогда не вызывал проблем, но MCP23017 случайным образом исчезал из шины и появлялся снова при запуске сканирования с помощью команды «i2cdetect -y 1».

Снятие дополнительных подтягивающих резисторов на ЖК-дисплее устранило проблему, и теперь все работает отлично.

5
ответ дан Daniel Loranger 19 May 2015 в 12:15
поделиться

У меня была такая же проблема в связи RasPi -> ATMEGA, и я решил ее на подчиненном устройстве. Это сообщение об ошибке появляется, если ваш подчиненный не отвечает.

Я попробовал следующий код на RasPi, с ведомым I2C, подключенным к шине I2C и настроенным с адресом 0x8:

из smbus import SMBus

I2C_Bus = SMBus (1)

SLAVE_ADD = 0x8

I2C_Bus.write_byte (SLAVE_ADD, 0xAA)

Если подчиненный I2C хорошо настроен для подтверждения, он должен работать!

0
ответ дан Alek6 19 May 2015 в 12:15
поделиться

Проблема стара, но согласно мне очень фактический!

решение (для RPi 3B +) состоит в том, чтобы установить режим ALT0 для GPIO в контакте 3 & 5 (медосмотров). Это может быть сделано с gpio инструментом командной строки:

gpio mode 8 alt0
gpio mode 9 alt0

8 и 9, поскольку это нумерации, используемые wiringpi для физического контакта 3 & 5. И это - точно проблема... она использует wiringpi.
http://wiringpi.com/wiringpi-deprecated/

В моем Python кодирует, я мог создать системный вызов тех 2 команд (для меня, он работает!)

Однако я хотел бы решение, которое не использует удержанный от использования, освобождает или инструменты.

Кто-либо?

0
ответ дан 30 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: