nanoFramework.Device.OneWire 1.4.22

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

// Install nanoFramework.Device.OneWire as a Cake Tool
#tool nuget:?package=nanoFramework.Device.OneWire&version=1.4.22                

Quality Gate Status Reliability Rating NuGet #yourfirstpr Discord

nanoFramework logo


欢迎访问 .NET nanoFramework 1-Wire® 类库存储库

构建状态

组件 构建状态 NuGet 包
nanoFramework.Device.OneWire Build Status NuGet

1-Wire® 总线

1-Wire® 是 Maxim Semiconductor 的通信协议。您可以在 这篇指南 中找到有关其的技术细节。

.NET nanoFramework 实现

我们对 1-Wire 通信的低级实现使用 UART 来实现精确的时序,同时尽量减少对 MCU 的负担。因此,它需要一个 UART,并且需要将 RX 和 TX 引脚短路在一起。根据总线的长度和阻抗,可能需要连接外部上拉电阻来提供必要的 1-Wire 通信信号。

重要:如果您正在使用ESP32设备,在创建OneWireHost之前必须配置UART2引脚。为此,您需要添加对nanoFramework.Hardware.ESP32的引用。在下面的代码片段中,我们将GPIO 21和22分配给UART2。请注意,在C#中,UART2被称为COM3

////////////////////////////////////////////////////////////////////////
// Configure pins 21 and 22 to be used in UART2 (that's refered as COM3)
Configuration.SetPinFunction(21, DeviceFunction.COM3_RX);
Configuration.SetPinFunction(22, DeviceFunction.COM3_TX);

请注意,在某些ESP32开发套件中,您计划用于UART2的引脚可能用于内部目的。例如,基于ESP32-WROOM-32或ESP32-WROVER-E的开发套件可能具有相同的引脚排列和 silk screen。如果套件基于ESP32-WROVER-E,则GPIO 17和16用于其扩展内存(PSRAM),不能用于其他目的,即使它们作为外部引脚出现。您可以使用Configuration.SetPinFunction使用任何其他可用于UART2引脚的GPIO引脚。

对于其他设备,例如STM32,无需配置GPIO引脚。您需要在相关设备文档中找到用于1-Wire的UART引脚。

使用示例

要连接到1-Wire总线并执行连接设备的操作,必须首先实例化OneWireHost。

OneWireHost _OneWireHost = new OneWireHost();

要查找连接到1-Wire总线的第一个设备,并且在执行搜索之前在总线上进行复位,应进行以下调用

_OneWireHost.FindFirstDevice(true, false);

向连接的设备写入值为0x44的字节

_OneWireHost.WriteByte(0x44);

获取连接到总线的所有1-Wire设备的序列号列表

var deviceList = _OneWireHost.FindAllDevices();

foreach(byte[] device in deviceList)
{
    string serial = "";

    foreach (byte b in device)
    {
        serial += b.ToString("X2");
    }

    Console.WriteLine($"{serial}");
}

反馈和文档

有关文档、提供反馈、问题以及了解如何贡献,请参考首页repo

加入我们的Discord社区此处

致谢

贡献者的列表可在CONTRIBUTORS中找到。

许可协议

nanoFramework类库受MIT许可证许可。

行为准则

本项目已采用由贡献者承诺规定的准则,以阐明在我们社区中的预期行为。有关更多信息,请参阅.NET Foundation Code of Conduct

.NET Foundation

本项目由.NET Foundation支持。

产品 兼容和附加计算的托管目标框架版本。
.NET Framework net is compatible. 
兼容目标框架
包含目标框架(在包内)
了解有关目标框架.NET标准的更多信息。

NuGet包 (2)

显示依赖nanoFramework.Device.OneWire的前两个NuGet包

下载
nanoFramework.Iot.Device.Ds18b20

此包包括适用于.NET nanoFramework C#项目的.NET IoT Core绑定Iot.Device.Ds18b20。

nanoFramework.ClickDrivers

nanoFramework中MikroElektronika Click数据的驱动程序。

GitHub存储库 (2)

显示依赖nanoFramework.Device.OneWire的前两个最受欢迎的GitHub存储库

存储库 星星
nanoframework/Samples
🍬 来自 nanoFramework 团队用于测试、验证概念和其他探索性工作的代码示例
nanoframework/nanoFramework.IoT.Device
📦 本仓库包含用于各种传感器、芯片、显示器、帽子以及驱动器的 .NET nanoFramework 实现
版本 下载 最后更新
1.4.22 141 8/1/2024
1.4.14 1,719 11/9/2023
1.4.8 4,275 12/22/2022
1.4.5 294 12/22/2022
1.3.4 2,919 3/29/2022
1.3.4-preview.17 128 3/28/2022
1.3.4-preview.15 130 3/17/2022
1.3.4-preview.14 122 3/14/2022
1.3.4-preview.13 187 2/25/2022