如何为 GPIO 启用 LightningProvider?
How to enable LightningProviders for GPIO?
我正在尝试使用 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 returns 即 dmaputil.exe is not available on this system
.
因此我想问一下是否有任何其他方法可以启用 LightningProvider 或者是否有办法知道它们是否与我的板不兼容?
谢谢!
更新
还尝试在 W10IoT 命令行中使用 devcon.exe 命令。
我能够找到直接内存访问控制器,但是当我执行 devcon.exe enable *PNP0200
时,它说它已启用但在使用 devcon.exe status *PNP0200
检查时仍处于禁用状态
请确认您是否在 OEMInput.xml 中添加了 IOT_DMAP_DRIVER 功能,此功能将在映像中添加 DMAP 驱动程序。如果从 OEMInput.xml 中删除 IOT_DMAP_DRIVER,默认驱动程序控制器在设备配置文件中将为空白,并且 dmaputil 在 Windows IoT Core 上将不可用。请参阅 IoT Core feature list.
更新:
您可以下载Lighting Provider的源码,然后在您的自定义镜像中进行部署调试。
我正在尝试使用 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 returns 即 dmaputil.exe is not available on this system
.
因此我想问一下是否有任何其他方法可以启用 LightningProvider 或者是否有办法知道它们是否与我的板不兼容?
谢谢!
更新
还尝试在 W10IoT 命令行中使用 devcon.exe 命令。
我能够找到直接内存访问控制器,但是当我执行 devcon.exe enable *PNP0200
时,它说它已启用但在使用 devcon.exe status *PNP0200
请确认您是否在 OEMInput.xml 中添加了 IOT_DMAP_DRIVER 功能,此功能将在映像中添加 DMAP 驱动程序。如果从 OEMInput.xml 中删除 IOT_DMAP_DRIVER,默认驱动程序控制器在设备配置文件中将为空白,并且 dmaputil 在 Windows IoT Core 上将不可用。请参阅 IoT Core feature list.
更新:
您可以下载Lighting Provider的源码,然后在您的自定义镜像中进行部署调试。