Welcome

首页 / 软件开发 / .NET编程技术 / 在.Net Micro Framework中访问硬件 - part1

在.Net Micro Framework中访问硬件 - part12011-11-30 博客园 fox23摘要:本文介绍了.Net Micro Framework中对硬件的简单而独特的访问方式。涉及GPIO,RS232串口等。通过简明的例程说明了如何创建IO口,如何发送接受数据的过程。

1.GPIO

通常来说,一块MCU要与周边环境进行交流,使用GPIO(General Purpose Input/Output)无疑是最常用的方式。一个GPIO口在被初始化之后可以被用于输入或输出的通道。一个GPIO口可以由两种状态来描述 - 低(约为0伏)和高(通常认为是3.3伏的正向电压)。

在.Net Micro Framework中,GPIO的状态被定义为布尔型,false->低, true->高。

Tips这里说的低(0伏)和高(3.3伏)是指你在设置GPIO的时候,实际加在GPIO口的电压。而在考虑输入的时候一般1v以下会被认为是逻辑低,1.7~5.5伏通常认为是逻辑高。超过5.5的电压是如果不加保护电路通常是会损坏你的硬件的。

1.1输出

在Microsoft.SPOT.Hardware命名空间下,你可以找到OutputPort类,它继承自Microsoft.SPOT.Hardware.Port---一个用于描述GPIO的基础类。

定义OutputPort一般都会初始化一个默认值(true代表高,false表示低)。

OutputPort outputPort = new OutputPort(MyPins.StatusLED, true);

/*第一个参数是枚举类型Microsoft.SPOT.Hardware.Cpu.Pin,不过为了使你的代码更灵活,非常建议你使用自己封装的类来绑定CPU的管脚名称和GPIO口的编号。*/

接着,outputPort的Write和Read方法就可以使用了,Write方法控制了管脚的电平状态,Read方法用于返回当前状态,也即上一次设置的状态。

下面的例子用于让自定义pin的led按1hz的频率闪烁(实际上是亮暗各0.5s左右)。

OutputPort outputPort = new OutputPort(MyPins.StatusLED, true);while (true){Thread.Sleep(500);outputPort.Write(!outputPort.Read()); //toggle port}