nanoFramework.Iot.Device.Mcp23xxx 1.2.570

前缀已保留
dotnet add package nanoFramework.Iot.Device.Mcp23xxx --version 1.2.570                
NuGet\Install-Package nanoFramework.Iot.Device.Mcp23xxx -Version 1.2.570                
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用NuGet模块的Install-Package版本。
<PackageReference Include="nanoFramework.Iot.Device.Mcp23xxx" Version="1.2.570" />                
对于支持PackageReference的项目,将此XML节点复制到项目文件中以便引用包。
paket add nanoFramework.Iot.Device.Mcp23xxx --version 1.2.570                
#r "nuget: nanoFramework.Iot.Device.Mcp23xxx, 1.2.570"                
#r指令可以在F# Interactive和Polyglot Notebooks中使用。将此内容复制到交互式工具或脚本的源代码中以便引用包。
// Install nanoFramework.Iot.Device.Mcp23xxx as a Cake Addin
#addin nuget:?package=nanoFramework.Iot.Device.Mcp23xxx&version=1.2.570

// Install nanoFramework.Iot.Device.Mcp23xxx as a Cake Tool
#tool nuget:?package=nanoFramework.Iot.Device.Mcp23xxx&version=1.2.570                

Mcp23xxx/MCP23008/MCP23009/MCP23017/MCP23018 - I/O 扩展器设备系列

MCP23XXX设备系列提供8/16位通用并行的I2C或SPI应用程序I/O扩展。这些设备包括一系列寻址方案和I/O配置,包括上拉电阻、极性反转和中断。

注意:此端口从.NET IoT开始使用.NET nanoframework。目前只支持I2C设备。

文档

设备系列

MCP23XXX设备包含不同的标记来区分功能,如接口、包装和温度等级。例如,MCP23017包含I2C接口,而MCP23S17包含SPI接口。请查看具体的数据表以获取更多信息。

注意:MCP23X16 包含不同的内部电路,与该绑定不兼容。

用法

Mcp230xx I2C

// 0x20 is the device address in this example.
var connectionSettings = new I2cConnectionSettings(1, 0x20);
var i2cDevice = I2cDevice.Create(connectionSettings);
var mcp23S17 = new Mcp23017(i2cDevice);

Mcp23Sxx SPI

var connectionSettings = new SpiConnectionSettings(0, 0)
{
    ClockFrequency = 1000000,
    Mode = SpiMode.Mode0
};

var spiDevice = SpiDevice.Create(connectionSettings);

// 0x20 is the device address in this example.
var mcp23S17 = new Mcp23S17(spiDevice, 0x20);

寄存器分块和端口

在 16 位扩展器上,GPIO 端口分为 2 个 "端口"。通过 IGpioController 接口,我们将引脚逻辑上暴露为 0-15,其中第一个分块是 0-7,第二个是 8-15。

当使用 16 位芯片上的 ReadByte()WriteByte() 时,您可以指定要写入的相应寄存器的 PortAPortB。默认为 PortA。读取和写入 ushort 写入到两个端口。

内部电路具有分块概念,可以按端口寄存器或按寄存器类型分组。这使读取/写入方案具有不同的配置。虽然我们对分块样式有一些支持,但并未直接暴露。没有安全的方法来检测模式,并且大多数其他驱动程序仅支持默认设置。您需要直接从 Mcp23xxx 继承。

16 位设备的示例
// Read Port B's Input Polarity Port Register (IPOL).
byte data = mcp23S17.Read(Register.IPOL, Port.PortB);
8 位设备的示例

MCP23X08 只包含 1 个端口,因此在寻址寄存器时没有端口选择。

// Read port A's GPIO Pull-Up Resistor Register (GPPU).
byte data = mcp23S08.ReadByte(Register.GPPU);

控制器引脚

Mcp23xxx 在实例化设备时具有重载的引脚选项。这包括一个复位线,它是控制器到 MCP23XXX RST 输入引脚的输出引脚。其他引脚是中断选项,它们是控制器从 MCP23XXX INTA/INTB 输出引脚的输入。它们是可选参数。将不使用的引脚分配为 null

// Pin 10: Reset; Output to Mcp23xxx
// Pin 25: INTA;  Input from Mcp23xxx
// Pin 17: INTB;  Input from Mcp23xxx
var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);

如果使用复位引脚,MCP23XXX 将默认处于复位/禁用状态。您必须调用 Enable() 方法来激活设备。

var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);
mcp23S17.Enable();
// Can now communicate with device.

// Turn off again if needed.
mcp23S17.Disable();

待办事项:目前只能读取中断引脚。事件将在未来的 PR 中到来。

var mcp23S17 = new Mcp23S17(spiDevice, 0x20, 10, 25, 17);
PinValue interruptA = mcp23S17.ReadInterruptA();
PinValue interruptB = mcp23S17.ReadInterruptB();

绑定说明

此绑定包含一个 Mcp23xxx 抽象类,以及为 8 位 Mcp23x0x 和 16 位 Mcp23x1x 变体提供的派生抽象类。

产品 兼容和额外的计算目标框架版本。
.NET Framework net 是兼容的。
兼容的目标框架
包括的目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

NuGet 包

此包未被任何 NuGet 包使用。

GitHub 仓库

此包未被任何流行的 GitHub 仓库使用。

版本 下载 最后更新
1.2.570 86 6/14/2024
1.2.560 84 5/29/2024
1.2.548 91 5/15/2024
1.2.436 239 11/10/2023
1.2.329 161 5/26/2023
1.2.316 139 5/16/2023
1.2.313 136 5/12/2023
1.2.297 147 5/3/2023
1.2.203 297 12/28/2022
1.2.141 390 10/25/2022
1.2.122 415 10/12/2022
1.2.114 406 10/8/2022
1.2.95 401 9/22/2022
1.2.87 462 9/15/2022
1.2.73 374 9/8/2022
1.1.113.2032 403 6/23/2022
1.1.1 420 4/14/2022
1.0.300 393 3/31/2022
1.0.0-preview.31 106 3/25/2022
1.0.0-preview.16 104 3/18/2022
1.0.0-preview.11 106 3/15/2022
1.0.0-preview.4 112 3/8/2022
1.0.0-preview.1 104 3/8/2022
0.0.0 146 2/24/2022