新闻中心

EEPW首页 > 测试测量 > 设计应用 > 基于嵌入式技术的温度测量系统设计

基于嵌入式技术的温度测量系统设计

作者:时间:2010-01-07来源:网络收藏

  本系统用到了串口通信中间件和数据队列中间件,即只需要将中间件程序添加到系统项目表中去,调用中间件的接口函数即可实现串口的通信,如:调用URAT0Init(9600)实现串口的初始化,其中,波特率可直接进行调整;调用URAT0Putch(temp4)实现将temp4中存储的数据通过串口发送出去。当要将应用程序移植到其他系统上时,只要对这两个函数及其他相关函数进行适当修改,而无需改变应用程序。

  上位机的通信程序运用了MSComm 控件,它是Microsoft公司提供的,简化Windows下串行通信编程的ActiveX控件,该控件提供了两种处理通信问题的方法,本系统采用了事件驱动法。当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。在编程过程中,就可以在OnComm事件处理函数中加入相应的处理代码。

  利用MSComm控件实现计算机通信的关键是正确设置MSComm控件的属性和方法。以下是用VB编写的部分设置程序:

  Private Sub Form_Load()

  Me.Show

  MSComm1.CommPort = 1 //选择串口com1

  MSComm1.Settings = 9600,n,8,1 //设置MSComm的连接属性

  MSComm1.RThreshold = 2 //定义阀值为2

  MSComm1.InBufferSize = 2

  i = 0

  Picture1.Visible = False

  On Error Resume Next

  End Sub

  连接属性BBBB,P,D,S中,BBBB 为波特率,P为奇偶校验,D为数据位数,S为停止位数。阀值定为2,则在接收缓冲区中的字节数超过“2”时,就转入OnComm()事件处理程序执行。

  3. 嵌入式系统软件

  采用了嵌入式操作系统uC/OS-II,它是专门为计算机的嵌入式应用而设计的。 uC/OS-II是基于优先级的占先式多任务实时内核。由于在多任务实时操作系统中,应用程序是以任务形式运行的,操作系统的一个重要的作用就是任务的调度,所以要在操作系统下实现应用程序的执行,就必须建立任务,在任务中实现测温和串行通信等操作。建立任务如下:

  #include config.h

  #define TASK_STK_SIZE 64 //定义任务栈的大小为64字节

  OS_STK TaskStartStk[TASK_STK_SIZE]; //定义任务栈

  void TaskStart(void *data); //声明任务

  int main (void)

  {

  OSInit(); //操作系统初始化

  OSTaskCreate(TaskStart, (void *)0, TaskStartStk[TASK_STK_SIZE - 1], 0); // 建任务

  OSStart(); //启动操作系统

  return 0;

  }



评论


相关推荐

技术专区

关闭