65.9K
CodeProject 正在变化。 阅读更多。
Home

.NET Micro Framework 中的串口通信

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.55/5 (14投票s)

2009年2月19日

CPOL

3分钟阅读

viewsIcon

84105

downloadIcon

2273

.NET Micro Framework 上的一个简单的串口应用程序

引言

本文将描述一种通过串口与基于 Micro Framework 的设备进行通信的非常简单的方法。

本文的重点是从 COM 端口获取字节并在屏幕上显示,以及将字节发送到 COM 端口。

什么是 .NET Micro Framework?

总而言之,MF 是 .NET 库的一个子集,专注于嵌入式应用程序。

.NET Micro Framework 为更小、更便宜、资源更受限的设备带来了一个丰富的、托管代码环境。只需要几百 KB 的 RAM 和一个廉价的处理器,.NET Micro Framework 从头开始构建,让您可以使用熟悉的 Visual Studio 开发工具构建应用程序。

Jens Kühner 在他的书中写道

“Microsoft .NET Micro Framework 是一个小型且高效的 .NET 运行时环境,用于在对于 Windows CE 和 .NET Compact Framework 来说太小且资源受限的设备上运行托管代码。

.NET Micro Framework 使您能够使用 Visual Studio 和 C# 为小型、连接的嵌入式设备编写嵌入式应用程序。这意味着您现在可以使用与构建桌面和智能设备(PDA 和智能手机)应用程序相同的开发工具和语言来开发微控制器应用程序。.NET Micro Framework 还提供了一个可扩展的硬件仿真器,用于快速原型设计和调试。

.NET Micro Framework 不需要底层操作系统。通用语言运行时 (TinyCLR) 的精简版本直接位于硬件上,因此该框架通常被称为可启动运行时。该运行时占用空间小;它仅使用几百 KB 的 RAM,并且不需要处理器具有内存管理单元 (MMU)。因此,.NET Micro Framework 可以在小型且廉价的 32 位处理器上运行,而不会消耗大量电量。”

背景

设备像标准的串口应用程序(一个聊天应用程序)一样,从一个实例向另一部分发送消息。

由于我的笔记本电脑没有提供串口,为了连接 MF 设备,我需要一个适配器;为此,我选择购买一个 USB 转串口适配器,效果很好;用于将设备连接到计算机的电缆随设备一起提供。

Using the Code

如您所知,我们有两端。

第 1 部分 PC 端

正如您所看到的,该表单有一个非常简单的界面,由两个文本框(一个用于编写要发送的消息,另一个用于显示接收到的消息)和一个用于发送消息的按钮组成。您可以在代码中设置 COM 端口(默认 COM6),您可以连接到另一个设备,并且您可以断开与另一个设备的连接。

seriW.jpg

就是这么简单。

第 2 部分 MF 端

我的 Micro Framework 开发套件是来自 http://www.devicesolutions.net/ 的 Tahoe-II。Micro Framework 部分有 2 个功能。第一个是在收到消息时显示消息。另一个函数将 DateTime.Now.Second.ToString() 发送到 COM 端口。

12022009333kk.jpg

发送方法

public SerialPort c1 = new SerialPort("COM1", 9600);

private void OnButtonUp(object sender, ButtonEventArgs e)
{
try
{
switch (e.Button) // e is the event record
{ 
case Button.VK_RIGHT:
if(!c1.IsOpen)
c1.Open();
byte[] gond = System.Text.UTF8Encoding.UTF8.GetBytes
	("Second : "+DateTime.Now.Second.ToString()+"\n");
c1.Write(gond, 0, gond.Length);
//c1.Close(); 
break;
}
}
catch (Exception ex)
{
text.TextRuns.Add("HATA : "+ex.Message, Resources.GetFont
	(Resources.FontResources.small), Colors.Red);
}
}

接收方法

public static string gelen = ""; 
private void okumaoldu(object s, SerialDataReceivedEventArgs e)
{
gelen = ""; 
byte[] okunanb = new byte[20];
c1.Read(okunanb, 0, 20);
char[] okunanc = System.Text.UTF8Encoding.UTF8.GetChars(okunanb);
for (int i = 0; i < okunanc.Length-1; i++)
gelen += okunanc[i];
Dispatcher.BeginInvoke(new metniguncelleDelegate(metniguncelle),gelen);
}
private void metniguncelle(string metin)
{
if(metin!="")
{
text.TextRuns.RemoveAt(4);
text.TextRuns.Add(metin, Resources.GetFont
	(Resources.FontResources.calibri), Colors.Green);
}
//text.Invalidate();
c1.Close();
c1.Open();
}

特殊且更大的 .NET Micro Framework 字体位于项目文件中。

您必须在开发中使用此交叉串口电缆

rs232cross.jpg

16022009379k.jpg

您可以在许多嵌入式项目中使用 MF。最后,我觉得我需要再次解释这个过程。通信点是 MF COM 端口和 PC COM 端口。双方都打开它们的端口,并且所有端都可以开始通过 comm 发送或接收字节。

历史

  • 2009年2月19日:首次发布
© . All rights reserved.