UWP App GpioController.GetDefault() 总是 returns null
UWP App GpioController.GetDefault() always returns null
我的应用 GpioController.GetDefault()
总是 returns null 是什么原因?该应用程序在 RPI3b 上 运行(正如其他应用程序之前所做的那样......从来没有 运行 进入这个?!)
var gpioController = GpioController.GetDefault();
// gpio controller is null ... why?!
ServiceContainer.Instance.Register(new IO(gpioController));;
发现问题。它在 Windows 物联网配置本身中。设备选项卡中有一个 "default controller driver"。它被设置为 DMA 驱动程序。将其更改为 "Inbox driver" 并重新启动 Pi 解决了问题。
如果要使用性能更好的DMA驱动,需要先activate/declare到API再查询GpioControleler
// This needs the following capabilities
// <iot:Capability Name="lowLevelDevices" />
// <DeviceCapability Name="109b86ad-f53d-4b76-aa5f-821e2ddf2141"/>
if (LightningProvider.IsLightningEnabled)
{
LowLevelDevicesController.DefaultProvider = LightningProvider.GetAggregateProvider();
}
var gpioController = GpioController.GetDefault();
// gpioController is valid
查看Lightning 提供商
了解更多详情
我的应用 GpioController.GetDefault()
总是 returns null 是什么原因?该应用程序在 RPI3b 上 运行(正如其他应用程序之前所做的那样......从来没有 运行 进入这个?!)
var gpioController = GpioController.GetDefault();
// gpio controller is null ... why?!
ServiceContainer.Instance.Register(new IO(gpioController));;
发现问题。它在 Windows 物联网配置本身中。设备选项卡中有一个 "default controller driver"。它被设置为 DMA 驱动程序。将其更改为 "Inbox driver" 并重新启动 Pi 解决了问题。
如果要使用性能更好的DMA驱动,需要先activate/declare到API再查询GpioControleler
// This needs the following capabilities
// <iot:Capability Name="lowLevelDevices" />
// <DeviceCapability Name="109b86ad-f53d-4b76-aa5f-821e2ddf2141"/>
if (LightningProvider.IsLightningEnabled)
{
LowLevelDevicesController.DefaultProvider = LightningProvider.GetAggregateProvider();
}
var gpioController = GpioController.GetDefault();
// gpioController is valid
查看Lightning 提供商 了解更多详情