Mcp23017 initialization resets pin values
- 主要语言
- C#
- 星标
- 2.4k
- 派生
- 630
- 平均合并
- 7 天 11 小时
- 30 天内合并 PR
- 3
描述
**Describe the bug**
Every time a new instance of Mcp23017() is being created the pins are being reset to low. This is an issue when the written software reboots, eg when updating the software version.
**Steps to reproduce**
```csharp
var pinNumber = 0;
var i2cConnectionSettings = new I2cConnectionSettings(1, 0x20);
var i2cDevice = I2cDevice.Create(i2cConnectionSettings);
var device = new Mcp23017(i2cDevice);
var controller = new GpioController(PinNumberingScheme.Logical, Mcp23017Device);
controller.Write(pinNumber, PinValue.High);
var device2 = new Mcp23017(i2cDevice);
var pinValue = controller.Read(pinNumber);
```
**Expected behavior**
Pins need to keep their value after re-initializing the Mcp23017() adapter.
**Actual behavior**
Pins are being reset every time a new instance of Mcp23017() is being declared. Looks like it is embedded in the init code here:
https://github.com/dotnet/iot/blob/main/src/devices/Mcp23xxx/Mcp23xxx.cs - starting at line 84.
贡献指南
这个仓库没有索引到贡献指南
调研方向
从 src/devices/Mcp23xxx/Mcp23xxx.cs 第 84 行附近开始,这里执行了 Mcp23017 的初始化。复现创建适配器、将一个引脚写为 high 以及创建第二个适配器的顺序;当引脚在重新初始化后仍保留其值时即完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- csharp
- 领域
- embedded-iot
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100