gpt4 book ai didi

c# - 树莓派 C# 上的 GPIO

转载 作者:行者123 更新时间:2023-12-05 07:44:55 28 4
gpt4 key购买 nike

我目前正在开展一个项目,使用 C# 制作树莓派机器人汽车。我完全不了解 c#,所以这是我的学习方式。

汽车使用 L298N 来控制电机,所以我只需要弄清楚如何让 pi 从一个引脚输出高电平,从另一个引脚输出低电平,然后我就能弄清楚如何控制它。

但关键是,我写了一些代码希望它能激活其中一个电机,但它似乎没有。我希望更了解 c# 和 GPIO 引脚的人能够指出错误。

谢谢,卡勒姆

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.Devices.Gpio;

// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x409

namespace App4
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainPage : Page
{
public void GPIO()
{
GpioController gpio = GpioController.GetDefault();
if (gpio == null)
return;
using (GpioPin pin1 = gpio.OpenPin(5))
{
pin1.Write(GpioPinValue.High);
pin1.SetDriveMode(GpioPinDriveMode.Output);
}
using (GpioPin pin2 = gpio.OpenPin(6))
{
pin2.Write(GpioPinValue.Low);
pin2.SetDriveMode(GpioPinDriveMode.Output);
}
}
}
}

最佳答案

如果您不能完全确定 GPIO 引脚是否正确,您可以使用此 GPIO 引脚映射:https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/

如您所见,GPIO 引脚 5 位于位置 29。

如果您确定 PIN 码正确,那么我认为您的代码没有太大问题。我能想到的唯一问题是您使用的是 using 语句:

using (GpioPin pin1 = gpio.OpenPin(5))
{
pin1.Write(GpioPinValue.High);
pin1.SetDriveMode(GpioPinDriveMode.Output);
}

这样做是打开 pin,写入,然后立即关闭 pin,这可能导致在 pin 关闭之前写入未完成。

不幸的是,我在文档中找不到任何内容 https://learn.microsoft.com/en-us/uwp/api/windows.devices.gpio.gpiopin关于是否立即执行写入过程。

您可以尝试删除 using 语句并稍后手动调用 pin1.Dispose() (例如当您要关闭程序时)

在这种情况下它看起来像这样:

GpioPin pin1 = gpio.OpenPin(5);
pin1.Write(GpioPinValue.High);
pin1.SetDriveMode(GpioPinDriveMode.Output);

...

pin1.Dispose();

关于c# - 树莓派 C# 上的 GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42377175/

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