.NET Core嵌入式编程开关量GPIO(控制2个灯泡交替闪烁)

一、在树莓派中安装.NET Core运行时

    1、到微软的官方站点下载.NET Core运行时 下载地址

 

       

  2、选择Linux 中的ARM32,如果不需要跑web,可以选择更精简的.NET Core Binaries ARM32。
  借助xftp 把下载回来的压缩包送到树莓派里面。

        

  3、把压缩包解压缩处理,并建立软连接,即可安装完成.NET Core

  sudo mkdir /usr/share/dotnet(新建文件夹)   

  sudo tar -xvf dotnet-sdk-3.0.100-linux-arm.tar.gz -C /usr/share/dotnet(解压运行时并复制到相应文件夹)   

  sudo ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet(并建立软连接)

       执行命令看一下.NET Core 安装情况         

  dotnet --info

    

  4、灯泡接线

  通用输出GPO,输出控制信号,常见有推挽输出和开漏输出两种模式,了解即可,非单片机专业无需精通。

    • 推挽输出。直接输出高低电平,可以GND+IO 或VCC+IO 两种接线。

    • 开漏输出。只能输出低电平或者空,低电平时让电流“漏进来”,常用于外接放大电路控制5V/12V 等场合。

      LED 小灯。单片机学习的经典,简单使用,很容易看到效果。有源蜂鸣器。输出低电平时鸣叫。例程中我们直接控制使用两个IO 口作为输出,分别控制LED 小灯和蜂鸣器,也可以是两个小灯。接线方案如下,选择GPIO17 和GPIO23,也就是板子的11 脚和16 脚(如下图)。这两个脚附近都有GND,方便接线。这里选择IO 引脚时一定要注意,强烈建议不要选择有端口复用功能(小括号有写)的引脚,例如GPIO04,这些引脚很可能会产生意想不到的信号。

          

  注意,引脚模块为Logical 时,采用逻辑引脚17 和23,如若选择Board,则代码需要写11 和16。
  效果:两个灯交

  5、编写.NET Core程序

   新建.Net Core 控制台项目,从nuget 引用System.Device.Gpio,在Program.cs中写入以下代码:

using System;
using System.Device.Gpio;
using System.Threading;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {
            int pin1 = 17, pin2 = 23;
            using var gpio = new GpioController(PinNumberingScheme.Logical);
            gpio.OpenPin(pin1, PinMode.Output);
            gpio.OpenPin(pin2, PinMode.Output);
            var flag = false;
            for (int i = 0; i < 200; i++)
            {
                var pv1 = flag ? PinValue.High : PinValue.Low;
                var pv2 = !flag ? PinValue.High : PinValue.Low;
                flag = !flag;

                gpio.Write(pin1, pv1);
                gpio.Write(pin2, pv2);
                Thread.Sleep(500);
            }
        }
    }
}

  5、发布并上传至树莓派

  然后使用 dotnet XXX.dll 运行程序(注意文件夹如果程序上传到根目录则直接运行,不是跟目录则cd到相应文件夹位置运行)

      

原文地址:https://www.cnblogs.com/kgxk/p/12078609.html