2016-03-22 30 views
1

我想通过在Windows 10 Iot核心上使用c#的树莓pi2上的GPIO接口〜30Hz频率输入计数Gpio输入信号。尽管我失去了大部分信号。所以我激活了Lightning Driver,我包含了C++ Lightning接口,我的LightningProvider似乎正确初始化。我正在测试LightningProvider.IsLightningEnabled并相应地初始化GpioController。 编译器似乎很高兴并生成一个可执行文件,可以在Raspberry Pi2上远程调试我的GPIO输出继续驱动我编程的Soft-PWM应用程序。唯一的问题是,当我激活Pi上的LightningDriver时,设置为统计我的信号的EventHandler不再被调用。
或将其缩短:只要激活LightningDriver,我就不会再收到任何输入信号。 任何线索?没有Gpio输入信号与LightningDriver

回答

0

看到你的GPIO初始化在这里可能会有所帮助,但是我遇到过类似的问题,即在第一次或第二次被触发后,我停止从GPIO引脚返回事件。

我在构造函数中设置了引脚,它们只是局部变量,事件处理函数被定义为私有方法。

解决方案是为我的引脚提供更多的范围,因为.NET在使用过一次后就销毁了这些引脚事件。我的代码最终是这样的:

private readonly GpioController _gpio; 
private readonly GpioPin _rateOnePin; 
private readonly GpioPin _rateTwoPin; 

用下面的构造函数代码:

_gpio = GpioController.GetDefault(); 

if (_gpio != null) 
{ 
    _rateOnePin = _gpio.OpenPin(5); 
    _rateOnePin.ValueChanged += RateOneReceived; 

    _rateTwoPin = _gpio.OpenPin(6); 
    _rateTwoPin.ValueChanged += RateTwoReceived; 
} 

我不知道为什么觉得有必要处置他们,但使得这并获得成功对我来说。

+0

感谢您的评论 - 但那不是它。我认为我有理由:有关MSDN的评论关于LightningDrivers,目前的版本还不支持中断。所以我会转换为投票,看看是否有效。 –