【发布时间】:2020-01-19 19:41:18
【问题描述】:
我正在尝试使用 Windows 10 IoT Core 访问我的自定义 SBC 上的 GPIO。我发现我必须使用LightningProviders 来完成此操作。因此,我尝试按照本指南正确使用闪电提供者。
我使用了非常简单的代码:
if (LightningProvider.IsLightningEnabled)
{
LowLevelDevicesController.DefaultProvider = LightningProvider.GetAggregateProvider();
}
GpioStatus = "Initializing...";
var gpio = GpioController.GetDefault();
if (gpio == null)
{
GpioStatus = "There is no GPIO controller on this device.";
}
else
{
gpio.OpenPin(1).Write(GpioPinValue.High);
GpioStatus = gpio.OpenPin(1).Read().ToString();
}
其中 GpioStatus 是 UI 上的输出文本。
我发现如果我在启用检查之外运行LowLevelDevicesController.DefaultProvider = LightningProvider.GetAggregateProvider(); 行,它会拾取 GPIO 控制器并让我检测我有多少引脚并读取它们(全部为低)。但是,我无法更改 DriveMode 或写入引脚而不会出错。我得到的错误只是告诉Make sure the LightningProviders are enabled。
这让我回到了我一开始链接的指南。它建议使用 W10IoT 的设备门户或 DMAPUtil.exe 启用 DMAP 驱动程序。我都试过了。在设备门户中,它应该存在的区域是空白的。在命令行中尝试使用 DMAPUtil.exe 只会返回 dmaputil.exe is not available on this system。
因此,我想问是否有任何其他方法可以启用 LightningProviders,或者是否有办法知道它们是否与我的板不兼容?
谢谢!
更新
还尝试使用 W10IoT 命令行中的 devcon.exe 命令。
我能够找到直接内存访问控制器,但是当我执行 devcon.exe enable *PNP0200 时,它说它已启用,但在使用 devcon.exe status *PNP0200 检查时仍处于禁用状态
【问题讨论】:
标签: c# uwp windows-10-iot-core