gpt4 book ai didi

c# - 如何在 Windows IOT 核心中的 Raspberry pi 上获得更好的 GPIO 引脚性能

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:11 24 4
gpt4 key购买 nike

我使用 C# 在运行 Windows 10 的树莓派 3 上运行以下代码

GPIO初始化....

_gpioController = GpioController.GetDefault();
_motorPin = _gpioController.OpenPin(Convert.ToInt32(RaspberryGPIOpin);
_motorPin.SetDriveMode(GpioPinDriveMode.Output);

GPIO 引脚开启关闭

_motorPin.Write(GpioPinValue.High);
_motorPin.Write(GpioPinValue.Low);

问题是在我的应用程序中打开和关闭 GPI 引脚需要 100 毫秒,但我需要它在不到 25 毫秒的时间内发生以改变伺服的方向。

有没有办法加快 GPIO 引脚的开关速度?

或者我应该看看某种硬件 Controller 来控制伺服。我不想这样做。我的代码也在一个线程中运行。我应该去掉线程吗?

我有一个更简单的应用程序,其中的代码确实有效…… https://github.com/StuartSmith/RaspberryPi-Control-Sg90-Example

最佳答案

Microsoft 提供了使用树莓派 2 切换 GPIO 位的完整测试结果,可在 https://developer.microsoft.com/en-us/windows/iot/docs/lightningperformance 中找到它.

因此您可以看到结果因 IoT 版本、驱动程序模型、.NET native 工具链甚至编程语言而异。但在最坏的情况下,大约可以达到 10kHz。

我没有在最新的 IoT Redstone 1 版本上测试过,但我猜它应该与 TH2 有相似的性能。

因此,一般来说,选择闪电驱动而不是默认的内置驱动,它应该在 GPIO 端口上有更好的性能。

此外,禁用 .NET native 工具链也会有明显更好的性能。

我看到您正在使用 GPIO 引脚驱动伺服,在这种情况下,软件时序应该足够好。但是如果你想用它作为需要高精度的时钟源,不要相信软件定时(照明提供商),软件抖动总是不可预测的。一个不错的替代方法是使用内置的 DMA Controller ,它使用硬件定时并且精度应该在 1 微秒以内。

关于c# - 如何在 Windows IOT 核心中的 Raspberry pi 上获得更好的 GPIO 引脚性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39677458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com