`
isiqi
  • 浏览: 16489972 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

.Net Micro Framework研究—IO读写

阅读更多

试验平台:Digi MF开发板

(图MF071028001.jpg

IO相关的部分如下:

3)拨码开关SW1 4)拨码开关SW2 11GPIO—output 10GPIO—input(参见下图)

(图MF071028003.jpg

首先,要操作相关IO部分,必须拨码开关SW1的拨码全部拨到右边,这时候GPIO有效。(SW1开关是切换串口和GPIO的)。

这时候如果你对拨码开关SW2进行操作,你会发现,当SW2的拨码在右边的时候相对应GPIO灯会亮,拨到左边则灭(这时候要保证没有任何程序运行或有程序运行但无操作GPIO灯的指令操作)。

如果你要使用最右边的GPIO入来控制GPIO灯,你必须使SW2的拨码在左边,这时候GPIO灯亮。你用一个短接线,把pin9pin10端口短接(如上图),这时候你发现GPIO1个灯灭,断开,则IO灯亮。相对应你也可以控制GPIO其它灯的亮灭。

好了,知道上面的知识,我们就可以进行相应的IO编程了。

首先我们要知道GPIOpin,请参见下表。

(图MF071028002.jpg

很遗憾,从上表得知,SW1SW2GPIO共用同一批GPIO Pin

分别为01256。对编程的影响就是,不能同时操作 GPIO入和GPIO出,如果强行同时操作,虽然代码可以编译成功,但运行时会跳出如下异常。

(图MF071028004.jpg

下面是读IO入的代码:

using System;

using System.Collections;

using System.Net;

using System.Net.Sockets;

using System.Runtime.CompilerServices;

using System.Text;

using System.Threading;

using Microsoft.SPOT;

using Microsoft.SPOT.Hardware;

using Microsoft.SPOT.Net;

using Microsoft.SPOT.Net.NetworkInformation;

public class DigiTest

{

public static void Main()

{

InputPort[] input = new InputPort[5];

Cpu.Pin[] pin = new Cpu.Pin[5] { (Cpu.Pin)0, (Cpu.Pin)1, (Cpu.Pin)2, (Cpu.Pin)5, (Cpu.Pin)6 };

for (int i = 0; i < 5; i++)

{

input[i] = new InputPort(pin[i], false, Port.ResistorMode.PullUp);

}

while (true)

{

Debug.Print(input[0].Read().ToString() + " " + input[1].Read().ToString() + " " + input[2].Read().ToString() + " " + input[3].Read().ToString() + " " + input[4].Read().ToString());

Thread.Sleep(1000);

}

}

}

下面是写IO出的代码,部署运行后你会发现,GPIO会闪烁。

using System;

using System.Collections;

using System.Net;

using System.Net.Sockets;

using System.Runtime.CompilerServices;

using System.Text;

using System.Threading;

using Microsoft.SPOT;

using Microsoft.SPOT.Hardware;

using Microsoft.SPOT.Net;

using Microsoft.SPOT.Net.NetworkInformation;

public class DigiTest

{

public static void Main()

{

OutputPort[] output = new OutputPort[5];

Cpu.Pin[] pin = new Cpu.Pin[5] { (Cpu.Pin)0, (Cpu.Pin)1, (Cpu.Pin)2, (Cpu.Pin)5, (Cpu.Pin)6 };

for (int i = 0; i < 5; i++)

{

output[i] = new OutputPort(pin[i], false);

}

while (true)

{

for (int i = 0; i < 5; i++)

{

output[i].Write(!output[i].Read());

}

Thread.Sleep(1000);

}

}

}

分享到:
评论

相关推荐

    .net micro framework file

    在.NET Micro Framework中,`System.IO`命名空间提供了对文件和目录的基本操作。下面将详细介绍如何在.NET MF中进行文件操作: 1. **创建文件**:你可以使用`File.Create()`方法来创建一个新的文件。例如: ```...

    SHT35_STM32030驱动.zip

    3. **C#编程**:在嵌入式环境中,C#可能通过.NET Micro Framework或者使用开源的Platform.IO等工具链进行STM32开发。开发者需要了解C#的基本语法、类库和如何与硬件交互。 4. **错误处理**:在驱动开发中,错误处理...

    单片机的同步_异步通信,包括发送部分程序、接收部分程序、主控制程序,针对不同单片机.zip

    在C#编程环境中,虽然它主要用于桌面和服务器应用,但通过.NET Micro Framework或其他嵌入式库,也可以用于编写单片机程序。C#提供了丰富的类库和方法,如System.IO.Ports命名空间中的SerialPort类,用于处理串行...

    基于51单片机的LED点阵流动文字的写法与思路

    编写程序通常使用C语言或汇编语言,而在这个项目中,我们选择了C#作为编程语言,这可能意味着我们将使用某种基于C#的嵌入式开发环境,如.NET Micro Framework或mbed等平台。 LED点阵是由多个LED灯珠排列成矩阵形式...

    arduino-first-tests

    在Arduino世界中,C#不直接用于编写板上的代码,但可以通过.NET Micro Framework或Platform.IO等工具链将C#代码编译为适合Arduino的格式。 在这个"arduino-first-tests"项目中,"master"分支通常表示这是项目的主...

    STM32F4_USART配置及细节描述.zip_单片机开发_C#_

    在C#编程中,通常会使用.NET Micro Framework或者第三方库(如OpenNETCF)来实现与STM32的通信。C#端的开发可能涉及以下内容: 1. **串口通信类**:使用`System.IO.Ports.SerialPort`类来创建串口对象,配置波特率...

    Java手机程序设计入门13

    在传统的Java标准版 (Java SE) 中,网络访问主要通过`java.io`和`java.net`包实现。然而,在J2ME的MIDP环境下,由于移动设备的存储空间有限以及网络通信方式多样性的特点,这两个包并不适用于MIDP。因此,J2ME引入了...

    SonyEricsson MIDP 文档api

    MIDP包含两大部分:用户界面组件(CLDC的User Interface,UI)和连接框架(Connection Framework),它们共同构成了开发者构建MIDlet(MIDP应用程序)的基础。 二、Sony Ericsson MIDP API Sony Ericsson MIDP API...

    java类库详解

    `java.io`包提供了文件和流的读写操作;`java.lang.Thread`和`java.util.concurrent`包则支持多线程编程;`java.net`包用于网络通信;`java.lang.reflect`包提供了运行时的类型检查和对象操作;`java.lang.Exception...

    java的各种类库 java包

    `java.util`提供了集合框架、日期时间、随机数生成等功能,而`java.io`则涉及输入/输出操作,如文件读写和流处理。 除了Java SE,Java还有许多扩展类库,例如Java Enterprise Edition (Java EE) 和Java Micro ...

    郭克华J2ME移动开发实战教学视频源代码

    《郭克华J2ME移动开发实战教学视频源代码》是一个专注于Java Micro Edition(J2ME)技术的教育资源,由知名讲师郭克华提供。J2ME是Java平台的一个子集,专门用于嵌入式设备和移动设备的开发,如早期的智能手机、功能...

    java实用程序设计100例源代码

    学习`java.io`和`java.nio`包中的类和接口,如FileInputStream、OutputStream、BufferedReader、Writer等,以及如何实现高效的数据读写和文件管理。 5. **图形用户界面(GUI)**: Java提供了丰富的GUI库,如AWT...

    探索J2ME:用GCF通信

    在Java Micro Edition (J2ME)的Mobile Information Device Profile (MIDP)中,通用连接框架(Generic Connection Framework,简称GCF)是一个重要的组件,它为移动设备提供了与其他设备进行数据传输的能力。...

    J2ME联网不同运营商网络方案

    在移动应用开发领域,J2ME(Java Micro Edition)扮演了重要的角色,尤其在网络通信方面。随着3G网络的普及,中国移动、联通、电信三大运营商为J2ME应用提供了丰富的网络环境。本文将深入探讨如何在J2ME平台上实现跨...

    Java选择题武汉大学JAVA基础.pdf

    Java的I/O处理涉及到读写数据流,包括java.io包中的File、FileReader、FileWriter等类。 18. Java的命令行参数 main方法可以通过String args[]接收命令行参数。 19. Java的继承和多态 通过extends关键字实现类的...

    Java实验室

    - 探索`java.util`、`java.io`、`java.nio`等核心包,熟悉常用类和方法。 10. **JavaSE、JavaEE与JavaME** - Java Standard Edition (JavaSE) 是基础,用于桌面应用和服务器端开发。 - Java Enterprise Edition ...

Global site tag (gtag.js) - Google Analytics