首页 > 评测 > 基于.net平台的Wi-Fi开发板——netduino3 Wi-Fi评测

基于.net平台的Wi-Fi开发板——netduino3 Wi-Fi评测

.net   Wi-Fi   netduino   CC3100   STM32   
  • 作者:netlhx
  • 来源:21ic
  • [导读]
  • C#工程师的福音来了:Netduino 3 Wi-Fi是netduino的第三代产品,硬件开源。Netduino 3 Wi-Fi开发板使用STM32F427VI作为主控,同时使用TI CC3100作为网络接口,提供网络访问能力。

上面的代码很简单,和使用其它编程工具如MDK相比较而言,可以看出逻辑基本是一样的,设定一个GPIO端口,然后反复写入0和1,实现LED灯的闪烁。

现在来将代码写入到netduino 3 Wi-Fi开发板,看它会不会动。先设置工程的属性,使得可以正确将代码下载到开发板。打开工程文件的属性对话框,作如下设置

14.jpg

图14:配置工程文件

如果设置无误,就可以开始下载代码到开发板了。点击IDE工具栏上的Start按钮,就会编译代码并将它下载到开发板,稍微等几秒后,应该可以看到开发板上的LED灯开始了。

作为一款Wi-Fi开发板,怎能少得了网络功能的体验呢?接下来,咱们体验一下网络应用,建立一个小小的Web服务器,然后通过网络来控制板载的LED灯的亮和灭。仍然按照前面介绍的方面,建立一个新的工程WebServer,设定相关的参数。在Program.cs文件中添加如下代码

public class Program

{

public static void Main()

{

// write your code here

OutputPort led = new OutputPort(Pins.ONBOARD_LED, false);

int port = 80;

Thread.Sleep(8000);

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface

networkInterface =

Microsoft.SPOT.Net.NetworkInformation.NetworkInterface.

GetAllNetworkInterfaces()[0];

Debug.Print("my ip address: " + networkInterface.IPAddress.ToString());

Socket listenerSocket = new Socket(AddressFamily.InterNetwork,

SocketType.Stream,

ProtocolType.Tcp);

IPEndPoint listenerEndPoint = new IPEndPoint(IPAddress.Any, port);

Debug.Print("setting up socket");

listenerSocket.Bind(listenerEndPoint);

listenerSocket.Listen(1);

Debug.Print("listening");

while (true)

{

Debug.Print(".");

Socket clientSocket = listenerSocket.Accept();

bool dataReady = clientSocket.Poll(5000000, SelectMode.SelectRead);

if (dataReady && clientSocket.Available > 0)

{

byte[] buffer = new byte[clientSocket.Available];

int bytesRead = clientSocket.Receive(buffer);

string request =

new string(System.Text.Encoding.UTF8.GetChars(buffer));

Debug.Print(request);

if (request.IndexOf("ON") >= 0)

{

led.Write(true);

}

else if (request.IndexOf("OFF") >= 0)

{

led.Write(false);

}

string statusText = "LED is " + (led.Read() ? "ON" : "OFF") + ".";

string response =

"HTTP/1.1 200 OK\r\n" +

"Content-Type: text/html; charset=utf-8\r\n\r\n" +

"" +

"" + statusText + "";

clientSocket.Send(System.Text.Encoding.UTF8.GetBytes(response));

}

clientSocket.Close();

}

}

}

  • 本文系21ic原创,未经许可禁止转载!

网友评论