Ошибка System.IO.IOException 121 на Raspberry Pi I²C с ЖК-дисплеем PCF8574 с использованием .NETC#

Место общения программистов C#
Anonymous
Ошибка System.IO.IOException 121 на Raspberry Pi I²C с ЖК-дисплеем PCF8574 с использованием .NET

Сообщение Anonymous »

Я пытаюсь подключить Raspberry Pi к дисплею Midas MCOB21605G1V-EYP с помощью припаянной платы HW-61 с использованием I²C.
Вывод VCC платы HW-61 подключен к соединительному разъему Wago. К этому разъему один провод идет от блока питания 5 В, а другой идет к преобразователю уровня Whadda WPI410.
Вывод GND на плате HW-61 также подключен к соединительному разъему Wago (другому). Этот разъем имеет три дополнительных провода GND: один от Raspberry Pi, один от блока питания и один от преобразователя уровня Whadda WPI410.
Выводы SDA и SCL на плате HW-61 подключены к соответствующим контактам на переключателе уровня. На стороне низкого напряжения преобразователь уровня правильно подключен к Raspberry Pi.
Как упоминалось в заголовке, я получаю сообщение об ошибке:

«System.IO.IOException: Error 121 (ошибка удаленного ввода-вывода) при передаче данных I2C».

Однако адрес I²C правильный, и I²C включен на Raspberry Пи.
Код:
using Iot.Device.CharacterLcd;
using Iot.Device.Pcx857x;
using se24_lite_display_manager.Models;
using System.Device.Gpio;
using System.Device.I2c;

namespace se24_lite_display_manager.Services
{
public class DisplayDriver
{
private Lcd1602? _lcd;
private readonly LiteDisplayManagerSettings _settings;
private readonly ILogger _logger;

public DisplayDriver(LiteDisplayManagerSettings settings, ILogger logger)
{
_settings = settings;
_logger = logger;

Start();
}

private void Start()
{
_logger.LogInformation("Starting the display...");

try
{
var i2cConnection = new I2cConnectionSettings(busId: 1, deviceAddress: 0x27);
var i2cDevice = I2cDevice.Create(i2cConnection);
var driverPcf = new Pcf8574(i2cDevice);

var gpioController = new GpioController(driverPcf);

_lcd = new Lcd1602(
registerSelectPin: 0,
enablePin: 2,
dataPins: new int[] { 4, 5, 6, 7 },
backlightPin: 3,
readWritePin: 1,
controller: gpioController
);

_lcd.Clear();
_lcd.Write("Hello World");
}
catch (Exception ex)
{
_logger.LogError($"{ex}");
_lcd = null;
}
}
}
}

Вернуться в «C#»