入门指引

现在让我们把LED连接到安装了Windows10 IoT Core 的硬件设备,并创建一个应用程序来让它们闪烁。

在Visual Studio中加载工程

首先在这里找到例程,这里有C++和C#的版本可供选择。本教程仅介绍使用C#的版本。将工程文件夹拷贝到磁盘中,然后用Visual Studio打开。
然后检查你的Windows IoT设备,确保打开了远程调试功能(Remote Debugging),可以参考这里的Hello World程序。
请注意如果Windows 10找不到可用的GPIO接口,应用程序将不会工作。比如你将windows10安装在了VM虚拟机中。

将LED连接到 Windows 10 设备

准备好下面的东西:
一个LED灯
一个阻值220欧姆电阻
若干杜邦线和面包板

将LED的负极连接到Raspberry Pi2的GPIO 5引脚(Board编号29),正极串联嗲足后连接到3.3v电源。(请务必注意极性,在直插型封装的LED中,较长的引脚是正极+,较短的引脚是负极-)

部署应用程序

对于Raspberry Pi2来说,应该在architecture的下拉菜单中选择ARM。

以上的步骤都做好了以后。可以按下F5,程序会自动运行,然后就可以看到闪烁的LED和下面的模拟界面。

可以通过改变滑块的位置来调整LED闪烁的有效时间

代码详解

下面就是这个程序的代码,基本工作原理是当定时器的时间达到后,调用事件Tick改变LED的状态。

定时器代码

这里是设置定时器的C#代码

public MainPage()
{
// ... this.timer = new DispatcherTimer();
this.timer.Interval = TimeSpan.FromMilliseconds(500);
this.timer.Tick += Timer_Tick;
this.timer.Start(); // ...
} private void Timer_Tick(object sender, object e)
{
FlipLED();
}

初始化GPIO引脚

为了能够驱动GPIO,首先需要对它进行初始化,这里是初始化程序的C#代码

using Windows.Devices.Gpio;

private void InitGPIO()
{
var gpio = GpioController.GetDefault(); // Show an error if there is no GPIO controller
if (gpio == null)
{
pin = null;
GpioStatus.Text = "There is no GPIO controller on this device.";
return;
} pin = gpio.OpenPin(LED_PIN); // Show an error if the pin wasn't initialized properly
if (pin == null)
{
GpioStatus.Text = "There were problems initializing the GPIO pin.";
return;
} pin.Write(GpioPinValue.High);
pin.SetDriveMode(GpioPinDriveMode.Output); GpioStatus.Text = "GPIO pin initialized correctly.";
}

简单的解释就是:
~首先,使用GpioController.GetDefault()获取GPIO控制权限
~如果设备不具有可用的GPIO资源,则返回null
~接下来通过调用GpioController.OpenPin()函数来打开GPIO引脚
~当我们获取了GPIO的控制权限并打开了GPIO引脚后,使用GpioPin.Write()函数来将LED关闭(参数设置High)
~这里还使用了GpioPin.SetDriveMode()函数将GPIO引脚的工作模式设置为输出模式。

改变GPIO引脚的状态

使用GpioPinValue.Low参数打开LED:
this.pin.Write(GpioPinValue.Low);
使用GpioPinValue.High参数关闭LED:
this.pin.Write(GpioPinValue.High);

因为我们将LED的正极连接到了3.3V电源,所以这里通过将GPIO引脚置低电平来打开LED。

树莓派 Windows10 IoT Core 开发教程的更多相关文章

  1. 树莓派 + Windows IoT Core 搭建环境监控系统

    前言:Windows IoT 是微软为嵌入式开发板设计的一种物联网操作系统,运行Windows UWP(C# 开发),可以设计出丰富的交互界面,驱动GPIO,连接一些传感器做有意思的事,本文详细介绍如 ...

  2. 基于Vmware player的Windows 10 IoT core + RaspberryPi2安装部署

    本文记录了基于Vmware Player安装Windows10和VS2015开发平台的过程,以及如何在RaspberryPi2.0上启动Windows10 IoT core系统,并通过一个简单的hel ...

  3. 基于树莓派的微型气象站设计与开发(Windows 10 IoT Core)

    前言 树莓派(Raspberry Pi,RPi)是专门为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,可以运行Linux或者Windows 10 IoT Core操作系统.本文将利用树莓派和U ...

  4. 【Windows10 IoT开发系列】PowerShell的相关配置

    原文:[Windows10 IoT开发系列]PowerShell的相关配置 可使用 Windows PowerShell 远程配置和管理任何 Windows 10 IoT 核心版设备.PowerShe ...

  5. 【Windows10 IoT开发系列】API 移植工具

    原文:[Windows10 IoT开发系列]API 移植工具 Windows 10 IoT Core 中是否提供你的当前 Win32 应用程序或库所依赖的 API? 如果不提供,是否存在可使用的等效 ...

  6. 【Windows10 IoT开发系列】Powershell命令行实用程序

    原文:[Windows10 IoT开发系列]Powershell命令行实用程序 更新帐户密码: 强烈建议你更新默认的管理员帐户密码.若要更新帐户密码,你可以发出以下命令: net user Admin ...

  7. 【Windows10 IoT开发系列】“Hello,World!”指导

    原文:[Windows10 IoT开发系列]"Hello,World!"指导 本文主要是介绍使用C#来开发一个可以运行在Raspberry Pi2上的一个基本项目. ​1.在启动V ...

  8. 【Windows10 IoT开发系列】配置篇

    原文:[Windows10 IoT开发系列]配置篇 Windows10 For IoT是Windows 10家族的一个新星,其针对不同平台拥有不同的版本.而其最重要的一个版本是运行在Raspberry ...

  9. CentOS开发ASP.NET Core入门教程

    作者:依乐祝 原文地址:https://www.cnblogs.com/yilezhu/p/9891346.html 因为之前一直没怎么玩过CentOS,大多数时间都是使用Win10进行开发,然后程序 ...

随机推荐

  1. 公司软raid问题

    RAID的技术介绍: stripe width(条带宽度):RAID中的磁盘数,就是组成这个stripe的磁盘数.如,4个磁盘组成的RAID 0,条带宽度就是4. stripe depth(条带深度) ...

  2. XSS代码注入框架

    首先需要了解一下几点: 1.浏览器中Javascript变量的生命周期 Javascript变量的生命周期并不是你声明这个变量个窗口闭就被回收,只要有引用就会一直持续到浏览器关闭. 2.window对 ...

  3. GPU下train 模型出现nan

    When training on GPU, the error "Model diverged with loss = NaN" is often caused by a sotm ...

  4. Tomcat不同版本所对应的Servlet/JSP规范

    上午在别人机器上做演示,写好 Servlet居然访问不了.后来回想叻下,觉得应该是Tomcat版本不一致的问题,我用的是Tomcat 7.0建的Project,他们大多数都是用的6.0的版本.回来又仔 ...

  5. 浅谈HIbernate

    Hiberbate是面向对象,需要把对象和数据库进行映射.与数据库无关,操作的是对象,会根据数据源和数据库的方言生成对应的sql语句进行查询,是一个优秀的java持久层解决方案,是当今主流的对象-关系 ...

  6. Java Map 接口

    Map接口中键和值一一映射. 可以通过键来获取值. 给定一个键和一个值,你可以将该值存储在一个Map对象. 之后,你可以通过键来访问对应的值. 当访问的值不存在的时候,方法就会抛出一个NoSuchEl ...

  7. ERP渠道管理添加验证和查询(二十二)

    添加联系人的后台代码: protected void btnSubmit_Click(object sender, EventArgs e) { BioErpCrmManageChannel chan ...

  8. thinkphp中data方法

    data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...

  9. ThinkPHP V5.0 正式版发布

    ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持compose ...

  10. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别

    数据处理 样本数据描述 样本数据集是double类型的178 * 14矩阵,第一列表示酒所属类别,后面13列分别表示当前样本的13个属性: 1) Alcohol 2) Malic acid 3) As ...