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
<PackageReference Include="nanoFramework.Device.OneWire" Version="1.4.22" />
paket add nanoFramework.Device.OneWire --version 1.4.22
#r "nuget: nanoFramework.Device.OneWire, 1.4.22"
// 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
欢迎访问 .NET nanoFramework 1-Wire® 类库存储库
构建状态
组件 | 构建状态 | NuGet 包 |
---|---|---|
nanoFramework.Device.OneWire |
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支持。
-
- nanoFramework.CoreLibrary (>= 1.15.5)
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 |