本人使用MINI2440板,在VS2008平台上使用C#编程,只做了一个简单串口,附上代码如下:
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace mini2440testCsharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
}
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.ReadTimeout = 500;
serialPort1.WriteTimeout = 500;
serialPort1.Open();
}
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
}
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.NewLine = "\n";
string mystr = serialPort1.ReadLine().ToString();
textBox1.Text = mystr;
}
}
}
部署的时候弹出错误,无法找到指定文件,从项目属性→生成里将部署.net framework勾选取消掉后,可以成功部署,不知道啥原因,感觉好像部署的时候部署不了.NET组件。MINI2440里查看了是安装了.NET3.5的。运行windows下的cgacutil.exe可以看到是.net Compact Framework [3.5.10181.0]
部署成功后,在WINCE上打开串口,但是串口只要一传过东西来就会弹出下面这个提示:
针对此异常的错误消息可用但无法显示,原因是这些消息是可选的,而当前未安装在此设备上。对于 Windows Mobile 5.0 及更高版本,请安装“NETCFv35.Messages.zh-CHS.wm.cab”,对于其他平台,请安装“NETCFv35.Messages.zh-CHS.cab”。重新启动应用程序查看该消息。
然后我下载了NETCFv35.Messages.zh-CHS.cab,安装弹出提示:没有应用程序与"NETCFv35.Messages.zh-CHS"相关联,请先运行程序,然后在应用程序中打开该文件
网上找了好久没有找到答案。
后来找了点串口资料,将上面的程序改为下面这样(textbox显示增加了委托):红色字体部分是修改了的
using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace mini2440testCsharp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
}
serialPort1.PortName = "COM1";
serialPort1.BaudRate = 9600;
serialPort1.ReadTimeout = 500;
serialPort1.WriteTimeout = 500;
serialPort1.Open();
}
private void button2_Click(object sender, EventArgs e)
{
if (serialPort1.IsOpen)
{
serialPort1.Close();
}
}
private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
serialPort1.NewLine = "\n";
string mystr = serialPort1.ReadLine().ToString();
//this.textBox1.Text = mystr;
Show(mystr);
}
private delegate void ShowDelegate(string strshow);
public void Show(string strshow)
{
if (this.textBox1.InvokeRequired)
{
this.textBox1.BeginInvoke(new ShowDelegate(Show), strshow);
}
else
{
this.textBox1.Text = strshow;
}
}
}
}
...
然后串口可以正常接收数据了,但是,我只要和USB一断开连接,直接在WINCE6.0上运行刚才编写的程序,就会仍然弹出这个提示:
针对此异常的错误消息可用但无法显示,原因是这些消息是可选的,而当前未安装在此设备上。对于 Windows Mobile 5.0 及更高版本,请安装“NETCFv35.Messages.zh-CHS.wm.cab”,对于其他平台,请安装“NETCFv35.Messages.zh-CHS.cab”。重新启动应用程序查看该消息。
网上找了好久,苦于没有解决方法,请各位朋友帮忙,谢谢了。