i2c в NodeJS на малиновом пи. "wire.readByte(function(err,res))" возвращает 255 независимо от значения на выводах

У меня есть малиновый пи, подключенный к IO Pi Plus от AB Electronics. У меня одна из двух микросхем MCP23017 только для вывода, а другая только для входа. Они индивидуально адресуются по 0x20 и 0x21 соответственно.

Вывод в порядке, и я могу легко управлять светодиодами, используя функцию:

wire.write([0x00, 0x00], function(err){}); //Set wire(0x20) data direction resister(0x00) to output only (0x00). 

Однако попытка чтения с использованием wire.readByte никогда не возвращает ничего, кроме 255 (или -256, когда я пытаюсь инвертировать биты. Что странно само по себе). провод1 = 0х21 (только вход)

wire1.readByte(function(err,res){ //Res is a buffer to hold the byte that is read
                    //res = ~res  This returns -256 instead of 0 when enabled. Not sure why.
                    console.log(res); // Output res
                    });
            });

Вся документация, которую я использую, находится здесь https://www.npmjs.com/package/i2c а таблица данных для чипсета - http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf

1 ответ

Я сталкиваюсь с подобными проблемами со считывателем температуры. Я имел ограниченную удачу, изменяя скорость передачи данных I2C и регулятор процессора.

Другие вопросы по тегам