如果,翻看我之前的博客,会找到一篇用I/O模拟IIC通信的程序文章。好吧,如果找不到可以点击这里,这里就不在赘述了,系统也已经完全调试通过了。
今天的任务是,把测试得到的数据在上位机的界面上显示出来,于是键盘手花了两天的时间模仿着巨人的肩膀通过了用C#编写的界面程序,界面很简单就像下面显示的一样。
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAALIAAACHCAIAAAA9X5QhAAAD8UlEQVR4nO3dwU7cMBRG4bz/q1RddYnY8BAg1EWlIlWCQdRvkC5o05D727nEGdtxzidUDRkHoclpnIIzHQJgDLW/AbSILCCQBQSygEAWEMgCAllAIAsIZAGBLCCQBQSygEAWEMgCAllAIAsIZAGBLCCQBQSygEAWEMgCAllAIAsIB8ji/uHx5vbuy9dvfCQ+bm7v7h8e93rND5DFz6eX59cwIun5NXz/8Wuv1/wYWdR+zY+BLCCQBQSyOKrhH7vdv9fw0TSMLA5pfggXjxNZ2L1ig8nikGQW6SMt9yKLEDrKYuI/0tOY2CQyH1Yhi8V8lh65xzf2X2dZJM4Z/vFyS6Es5gc49jiYYvwBOfWUhTyusetQu0sTWYRZAYmDPR9jN+brJgvnKSHxlJ1xKv9LhLNFvsUrY5+aHsd2TGwZW7u2cJ4tNlfSTRbXVuHawjMsfZ4gi2srfW2Rnh12vIyQyMKp9CQyxbH4c/HsNS4sAlm4Fc1iOsDpLIK6FJVf57PIwqnCJCL/nI9ZPObaorzSl5z+LELG4Y9hdZZH6dVZ8qJhMbPMh8lPc1wub0/Pv/lY/bhc3vJf7XcH+FUZyiMLCGQBgSwgkAUEsoBAFhDIAgJZQCALCGQBgSwgHCAL3vaEtz0R+MW6B297Aq2tld+77JVAFk7NrfxOL9XJRBZOdVZ+x7bI9Zs7njN6ymL627LY6NllvqP8OhWy4GyRb4jcq76aRezBWPeO9V3OFpsr6TuLce1sYYdVziJ88q6y9HmCLMZNk0hiTOVJ5O9QcyvAfPv1dJNFztnCjrFbSt8QMH9gpwzPGSUHWdgxcpcW70EN5rRhPz35JLJXFrHxFd4NJ/gmkfRV6smzGH1vYLJ6GbE4JU/b6/yU03ltseP08a6nLK7qXDcbkoUTvyqDQBYQyAICWUA4XRaszlp1utVZvO0Jb3uCJpAFBLKAQBYQyAICWUA4QBbcbMjNhgI/zvI43Y+z+OG3U521nLWQhVNDy3DSA1iGU1KdtZw5Y3L0lIVcubnYsnmvoms5V08DQ3LBd75ushjMOl67JWevti45nVlsnlM6ziL2bHqv+ll4rhjIwil2ONOTSItZ6H0iNwqk69msmyzG5H+dfaSzhd5n09lis56ymJw0CxsHk8ho3oygq0vOwdw4ZJ+V28nCziByy4a9xupZhI/HmEmkEfWzCOYG9pj8b5EsnJrIohiycCILCGQBgSwgnC4LVmetOt3qLG425GZDNIEsIJAFBLKAQBYQyAICWUAgCwhkAYEsIJAFBLKAQBYQyAICWUAgCwhkAYEsIJAFBLKAQBYQyAICWUAgCwhkAYEsIJAFBLKAQBYQ/gDbhtRj+kMp4gAAAABJRU5ErkJggg==" alt="" />
下面就一步一步给大伙展示一下我的程序吧。
C#非常的强大而且友好,串口的通信可以通过编程环境(这里我用的是Visual Studio 2010),如果有需要的话可以给我信息,我有完整版的安装包。如下图,简单的调用和选择就完成了串口的基本配置。
aaarticlea/png;base64,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" alt="" />aaarticlea/png;base64,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" alt="" />
下面主要就是编程的问题了,在窗体Load的进程中可以完成串口的启动
private void Form1_Load(object sender, EventArgs e)
{
serialPort1.PortName = "COM4";
serialPort1.BaudRate = ;
serialPort1.Open();
this.textBox1.Clear();
thread = new Thread(CrossThreadFlush);
thread.IsBackground = true;
thread.Start();
}
而后就是读取数据的操作,这时候用到事件
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
在这个事件里面编程就可以了,但是在对窗体内文本进行操作的时候会发现出现了线程的冲突和错误。网上给出的一种解决方法是采用代理的方式具体的程序如下
public partial class Form1 : Form
{
private delegate void FlushClient(); //代理
Thread thread = null;
uint DateTemp;
uint Datefalg = ;
uint counter = ;
uint DateTemp1 = ;
uint TMP1;
uint RH1;
uint PRESS1;
double TMP;
double RH;
double PRESS; public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
serialPort1.PortName = "COM4";
serialPort1.BaudRate = ;
serialPort1.Open();
this.textBox1.Clear();
thread = new Thread(CrossThreadFlush);
thread.IsBackground = true;
thread.Start();
} private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
counter=counter+;
DateTemp = (uint)this.serialPort1.ReadByte();
if (DateTemp == 0xF1)
{
Datefalg = ;
DateTemp1 = ;
DateTemp = ;
counter=;
}
if (DateTemp == 0xF2)
{
Datefalg = ;
DateTemp1 = ;
DateTemp = ;
counter=;
}
if (DateTemp == 0xF3)
{
Datefalg = ;
DateTemp1 = ;
DateTemp = ;
counter=;
}
if (Datefalg == && DateTemp != 0xF1)
{ if(counter==)
DateTemp1 = DateTemp;
if (counter == )
{
TMP1 = DateTemp1 * + DateTemp;
TMP = (0.01 * TMP1) - ;
} }
if (Datefalg == && DateTemp != 0xF2)
{
if (counter == )
DateTemp1 = DateTemp;
if (counter == )
{
RH1 = DateTemp1 * + DateTemp;
RH = (0.0405 * RH1) - -0.0000028*RH1*RH1;
} }
if (Datefalg == && DateTemp != 0xF3)
{
if (counter == )
DateTemp1 = DateTemp;
if (counter == )
{
PRESS1 = DateTemp1 * + DateTemp;
PRESS = (PRESS1-)*/ + ;
}
}
} private void CrossThreadFlush()
{
while (true)
{
//将sleep和无限循环放在等待异步的外面
Thread.Sleep();
ThreadFunction();
}
} private void ThreadFunction()
{
if (this.textBox1.InvokeRequired)//等待异步
{
FlushClient fc = new FlushClient(ThreadFunction);
this.Invoke(fc); //通过代理调用刷新方法 }
else
textBox1.Text = TMP.ToString("0.00");
if (this.textBox2.InvokeRequired)//等待异步
{
FlushClient fc = new FlushClient(ThreadFunction);
this.Invoke(fc); //通过代理调用刷新方法 }
else
textBox2.Text = RH.ToString("0.00");
if (this.textBox3.InvokeRequired)//等待异步
{
FlushClient fc = new FlushClient(ThreadFunction);
this.Invoke(fc); //通过代理调用刷新方法 }
else
textBox3.Text = PRESS.ToString("0.00"); } }
通过这样的一番调试之后才得以程序正确的运行,由于工科程序员和计算机程序员的编程思想还是有差别的,所以写的不好的地方请轻喷。
【重要通知】
为了丰富给位程序狗&硬件狗们的业余生活,我们做了一个艰难的决定,我们“泡泡鱼工作室”开通了“硬件为王”公共订阅号,微信号:king_hardware。关注智能硬件和互联网创业,以及日常学习资料/搞笑段子推送。请猛扫下面的二维码!
Powered By Bubble_fish ; Email:bubble_fish@yeah.net