`
hulunberbus
  • 浏览: 876341 次
文章分类
社区版块
存档分类
最新评论

用模拟器零成本体验MF开发

 
阅读更多

http://www.cnblogs.com/yefanqiu/archive/2008/07/16/1243978.html

目前针对.Net Micro Framework无论是开发GPIOSPII2C,还是串口通信都离不开硬件,前段时间我扩展了官方的MF模拟器,可以不用硬件,零成本的体验上述技术开发。

要体验MF开发,必须具备如下条件:

ØPC机上已安装VS2005

Øhttp://msdn.microsoft.com/zh-cn/embedded/bb267253(en-us).aspx下载并安装MF 2.5 SDK

Øhttp://www.sky-walker.com.cn/MFEmulator_SDK.rar下载模拟器及PPT文档;

Ø根据说明,在本机上注册该模拟器;

一、模拟器的使用

1、模拟器下载

http://www.sky-walker.com.cn/MFEmulator_SDK.rar下载模拟器。

2、模拟器注册

压缩包“YFMF模拟器”目录中有一个YFEmulatorReg.exe文件,运行该文件,并选择打开模拟器文件,完成注册。


<?XML:NAMESPACE PREFIX = O />



3、模拟器配置

新建一个MF工程,打开该工程的属性页,在Micro Framework选项中,设定我们扩展的模拟器。



4、启动后的模拟器


二、应用开发示例

1GPIO测试

模拟器中相关GPIOPIN值如下:

I0~I7 Pin=10~17

Q9~Q7Pin=20~27

完整的测试代码如下:

usingSystem;

usingMicrosoft.SPOT;

usingMicrosoft.SPOT.Hardware;

usingSystem.Threading;

namespaceGPIOTest

{

publicclassProgram

{

staticOutputPort[]output=newOutputPort[8];

staticInputPort[]input=newInputPort[8];

publicstaticvoidMain()

{

//叶帆模拟器GPIO的pin定义

Cpu.Pin[]pin_I
=newCpu.Pin[8]{(Cpu.Pin)10,(Cpu.Pin)11,(Cpu.Pin)12,(Cpu.Pin)13,(Cpu.Pin)14,(Cpu.Pin)15,(Cpu.Pin)16,(Cpu.Pin)17};

Cpu.Pin[]pin_Q
=newCpu.Pin[8]{(Cpu.Pin)20,(Cpu.Pin)21,(Cpu.Pin)22,(Cpu.Pin)23,(Cpu.Pin)24,(Cpu.Pin)25,(Cpu.Pin)26,(Cpu.Pin)27};

//GPIO

for(inti=0;i<8;i++)

{

input[i]
=newInputPort(pin_I[i],false,Port.ResistorMode.PullDown);

output[i]
=newOutputPort(pin_Q[i],false);

}

intIndex=0;

while(true)

{

GPIOTest(
refIndex);

Thread.Sleep(
200);

}

}

//GPIO测试

publicstaticvoidGPIOTest(refintIndex)

{

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

if(++Index>7)Index=0;

stringstrPace="";

Debug.Print(
"Input:I0I1I2I3I4I5I6I7");

Debug.Print(
""+(input[0].Read()?"1":"0")+strPace+(input[1].Read()?"1":"0")+strPace+(input[2].Read()?"1":"0")+strPace+(input[3].Read()?"1":"0")+strPace+(input[4].Read()?"1":"0")+strPace+(input[5].Read()?"1":"0")+strPace+(input[6].Read()?"1":"0")+strPace+(input[7].Read()?"1":"0"));

Debug.Print(
"Output:Q0Q1Q2Q3Q4Q5Q6Q7");

Debug.Print(
""+(output[0].Read()?"1":"0")+strPace+(output[1].Read()?"1":"0")+strPace+(output[2].Read()?"1":"0")+strPace+(output[3].Read()?"1":"0")+strPace+(output[4].Read()?"1":"0")+strPace+(output[5].Read()?"1":"0")+strPace+(output[6].Read()?"1":"0")+strPace+(output[7].Read()?"1":"0"));

}

}

}

测试结果:

2SPI测试

模拟器中相关SPIPIN值如下:

PIN=30

完整的测试代码如下:

usingSystem;

usingMicrosoft.SPOT;

usingMicrosoft.SPOT.Hardware;

usingSystem.Threading;

namespaceSPITest

{

publicclassProgram

{

staticSPI_spi;

staticintQAW=0;

publicstaticvoidMain()

{

//SPI的pin定义

_spi
=newSPI(newSPI.Configuration((Cpu.Pin)30,true,0,0,false,false,4000,SPI.SPI_module.SPI1));

while(true)

{

SPITest();

Thread.Sleep(
200);

}

}

//读写SPI数据

privatestaticInt16SPIReadWrite(Int16value)

{

byte[]bout=newbyte[2];

byte[]bin=newbyte[2];

bout[
0]=(byte)(value>>8);

bout[
1]=(byte)(value&0xff);

_spi.WriteRead(bout,bin);

Int16aw0
=(Int16)((bin[0]<<8)+bin[1]);

returnaw0;

}

//SPI测试

publicstaticvoidSPITest()

{

if(QAW++>100)QAW=0;

Debug.Print(
"SPI:DI="+SPIReadWrite((Int16)QAW).ToString()+"DO="+QAW.ToString());

}

}

}


测试结果:

3I2C测试

模拟器中相关I2C的地址如下:

地址=100

完整的测试代码如下:

usingSystem;

usingMicrosoft.SPOT;

usingMicrosoft.SPOT.Hardware;

usingSystem.Threading;

namespaceI2CTest

{

publicclassProgram

{

//I2C定义模拟器I2C地址为100时钟速度不要设置太小否则会有问题

staticI2CDeviceI2CBus=newI2CDevice(newI2CDevice.Configuration(100,200));

staticintIntI2CNum=0;

publicstaticvoidMain()

{

while(true)

{

I2CTest();

Thread.Sleep(
200);

}

}

//I2C测试

publicstaticvoidI2CTest()

{

if(++IntI2CNum>10)IntI2CNum=0;

//I2C读写

byte[]bytRData=newbyte[8];

byte[]bytWData=newbyte[3];

bytWData[
0]=(byte)IntI2CNum;

bytWData[
1]=(byte)(IntI2CNum*2);

bytWData[
2]=(byte)(IntI2CNum*3);

I2CDevice.I2CTransaction[]i2c
=newI2CDevice.I2CTransaction[2];

i2c[
0]=I2CBus.CreateReadTransaction(bytRData);

i2c[
1]=I2CBus.CreateWriteTransaction(bytWData);

I2CBus.Execute(i2c,
100);//执行

stringstrPace="";

stringstrInfo="I2C(Byte0-7):"+bytRData[0].ToString()+strPace+bytRData[1].ToString()+strPace+bytRData[2].ToString()+strPace+bytRData[3].ToString()+strPace+bytRData[4].ToString()+strPace+bytRData[5].ToString()+strPace+bytRData[6].ToString()+strPace+bytRData[7].ToString();

Debug.Print(strInfo);

}

}

}


测试结果:



4、其它测试

串口、鼠标等等测试,暂略,有兴趣的朋友可以自行测试。

三、嵌入式开发资源

Windows Embedded中文官方网站

http://www.microsoft.com/china/windows/embedded

.NET Micro Framework

http://msdn2.microsoft.com/zh-cn/embedded/bb267253.aspx

Microsoft Robotics Studio

http://msdn2.microsoft.com/zh-cn/robotics/default.aspx

微软嵌入式开发者论坛

http://forums.microsoft.com/china/default.aspx?ForumGroupID=493&SiteID=15

微软中国嵌入式开发者博客

http://blogs.msdn.com/yunxu/

Mike Hall的博客

http://msdn2.microsoft.com/zh-cn/embedded/ Aa731228.aspx

Windows Embedded 专题

http://we.cnblogs.com/

叶帆工作室(CSDN)

http://blog.csdn.net/yefanqiu/

叶帆工作室(博客园)

http://www.cnblogs.com/yefanqiu

分享到:
评论

相关推荐

    Windows Embedded从入门到精通系列课程(18):.NET Micro Framework——用模拟器零成本体验MF开发

    在提供的文件"用模拟器零成本体验MF开发 [兼容模式].pdf"中,你将找到详细的操作指南和实例,包括如何安装和配置模拟器,以及如何使用模拟器进行.NET MF项目开发。这份文档会逐步指导你如何利用模拟器进行GPIO的开关...

    HBuilder X 中使用模拟器进行App开发说明.docx

    在HBuilder X中使用模拟器进行App开发是现代移动应用开发者常用的一种方法,尤其是当使用uni-app框架时,它允许开发者编写一次代码,跨平台运行。以下是对标题和描述中涉及知识点的详细说明: 1. **HBuilder X**: ...

    AS安卓开发-使用外部模拟器-mumu模拟器,调试运行程序

    ### AS安卓开发-使用外部模拟器-mumu模拟器,调试运行程序 在Android开发过程中,除了使用Android Studio自带的模拟器之外,还可以选择其他第三方模拟器来提高开发效率。其中,MuMu模拟器因其良好的性能表现及较低的...

    《Android开发从零开始》——2.模拟器的使用

    在Android应用开发中,模拟器扮演着至关重要的角色,它为开发者提供了一个...同时,随着技术的进步,如Intel HAXM(硬件加速执行管理器)的使用,模拟器的性能已经得到了显著提升,使得在模拟器上的开发体验更加流畅。

    NES模拟器开发简介

    ### NES模拟器开发简介 #### 一、模拟器开发概览 模拟器是一种软件或硬件系统,能够模拟另一种系统的功能,使用户可以在当前系统上运行原本只适用于被模拟系统的程序或游戏。对于NES(Nintendo Entertainment ...

    Nokia SDK 开发模拟器

    **使用Nokia SDK 开发模拟器进行开发** 1. **安装与配置**:首先,开发者需要下载并安装Nokia SDK,按照官方提供的指导完成配置,确保所有组件都已正确安装,包括JDK(Java Development Kit)和IDE(如Eclipse或...

    .Net MF 模拟器 抓图

    源程序是 http://bansky.net/blog/2008/03/jpeg-camera-and-micro-framework/&lt;br&gt;原作者是在 Tahoe development board 实现的,这个不需要使用硬件,直接就可以通过模拟器抓取图像

    NET手机模拟器开发

    .NET手机模拟器开发是针对移动设备编程的一种技术,主要集中在使用.NET框架进行Windows CE或Pocket PC平台的应用程序开发。在本文中,我们将深入探讨.NET手机模拟器开发的关键知识点,包括.NET Compact Framework、...

    genymotion模拟器Android开发利器

    genymotion模拟器,Android开发,安卓玩游戏,多平台,启动快

    java开发j2me手机模拟器kemulator

    Java开发的J2ME手机模拟器KEmulator是一款在软件开发过程中非常实用的工具,尤其对于Java移动应用开发者而言。J2ME,全称为Java 2 ...无论是个人开发者还是企业团队,都可以利用这款工具提升开发效率,降低开发成本。

    金庸群侠传OL1.0易语言模拟器全套资料+模块

    金庸群侠传OL1.0易语言服务端模拟器+所需模块+开发资料+所需工具等 本模拟器理论支持 所有金庸群侠传OL1.0版客户端 简繁体。 本模拟器为【半成品】 本模拟器目前底层基础开发完毕,可以登陆游戏,其他还未开发,有...

    .Net MF 模拟器

    .NET Micro Framework(简称.NET MF)是由微软开发的一个嵌入式操作系统平台,主要针对资源有限的设备,如物联网(IoT)设备、智能家居组件和小型工业控制器。标题中的".Net MF 模拟器"指的是一个用于模拟.NET MF环境...

    FC模拟器C#开发.rar

    本项目是一个使用C#编程语言开发的FC模拟器,C#是一种面向对象的、类型安全的、现代的编程语言,由微软公司开发并广泛应用于Windows平台上的应用程序开发,包括游戏开发和系统模拟。 在C#中开发FC模拟器涉及到多个...

    NES模拟器开发入门

    随着技术的发展,人们开始尝试在现代设备上重现NES的游戏体验,这就催生了NES模拟器的开发需求。本文将详细介绍NES模拟器开发的相关知识点。 #### 一、NES模拟器开发指南概览 NES模拟器开发指南主要针对希望编写...

    手机模拟器+jQueryMobile教程

    这大大降低了开发成本,提高了效率。 2. 主流手机模拟器: - Android Studio内置的AVD(Android Virtual Device):支持多种Android版本和设备配置,可自定义硬件参数。 - Xcode的iOS Simulator:适用于iOS应用...

    S7200模拟器.rar_S7 200模拟器.r_S7 模拟器_S7COMM模拟器_plc200模拟器_s7-200

    标题中的"S7200模拟器.rar_S7 200模拟器.r_S7 模拟器_S7COMM模拟器_plc200模拟器_s7-200"指的是一个压缩包文件,包含了用于模拟西门子S7-200 PLC(可编程逻辑控制器)的操作软件。这个模拟器允许用户在没有实际硬件...

    夜神模拟器,开发测试版

    夜神模拟器,开发人员测试版。 夜神安卓模拟器是目前唯一一款采用类手机界面视觉设计的PC端桌面软件,采用世界领先的内核技术(基于Android4.4.2版本内核针在电脑上运行深度开发),具有同类模拟器中最快的运行速度...

    j2me模拟器 kjava开发必备

    **J2ME模拟器与KJava开发** J2ME(Java 2 Micro Edition)是Java平台的一个子集,主要用于移动设备、嵌入式系统和其他计算设备的开发。它提供了轻量级的框架,使得开发者可以为功能手机创建应用程序,包括游戏、...

Global site tag (gtag.js) - Google Analytics