技术开发 频道

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

 2、SPI测试

 模拟器中相关SPI的PIN值如下:

 PIN=30

 完整的测试代码如下:

 

 using System;

 using Microsoft.SPOT;

 using Microsoft.SPOT.Hardware;

 using System.Threading;

 namespace SPITest

 {

 public class Program

 {

 static SPI _spi;

 static int QAW = 0;

 public static void Main()

 {

 //SPI的pin定义

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

 while (true)

 {

 SPITest();

 Thread.Sleep(200);

 }

 }

 //读写SPI数据

 private static Int16 SPIReadWrite(Int16 value)

 {

 byte[] bout = new byte[2];

 byte[] bin = new byte[2];

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

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

 _spi.WriteRead(bout, bin);

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

 return aw0;

 }

 //SPI测试

 public static void SPITest()

 {

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

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

 }

 }

 }

 测试结果:

 3、I2C测试

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

 地址=100

 完整的测试代码如下:

 

 using System;

 using Microsoft.SPOT;

 using Microsoft.SPOT.Hardware;

 using System.Threading;

 namespace I2CTest

 {

 public class Program

 {

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

 static I2CDevice I2CBus = new I2CDevice(new I2CDevice.Configuration(100, 200));

 static int IntI2CNum = 0;

 public static void Main()

 {

 while (true)

 {

 I2CTest();

 Thread.Sleep(200);

 }

 }

 //I2C测试

 public static void I2CTest()

 {

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

 //I2C读写

 byte[] bytRData = new byte[8];

 byte[] bytWData = new byte[3];

 bytWData[0] = (byte)IntI2CNum;

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

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

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

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

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

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

 string strPace = " ";

 string strInfo = "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、其它测试

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

查看原文地址

0
相关文章