[请 输 入 专 业] 论文
[请输入学校名称
串口温度数据采集并实时显示
(上位机部分)
姓 名: [请输入作者] 学 号: [请 输 入 学 号] 指导教师: [请输入指导教师]
2013年4月17日
一、原理
读串口数据的原理是,只要当有数据向串口发数据来时,计算机就会自动将其数据写到一个特定的缓冲区,我们只要写程序去读那个特定的缓冲区就可以了.
有数据向串口发过来时,程序可以将数据接收到,接收的数据是字符型的,那么将数据转化为数字型的,再将这个数据的大小作为画图的某一个点的纵坐标,横坐标为数据的序号.将这些点用线连起来就是一个曲线图了,这个就是图形显示基本原理.
查看原来的数据的原理也是这样的,不同的地方就是,数据是从文件中来,同样的也是将多个数据分成一个一个的,然后这一个数据的大小就是画图的某一个点的纵坐标,横坐标同样为数据的序号,再将这些点用线连起来就是曲线图.
图形能移动的原理,是我们首先改变的只是数据,图形并没有变,但图形的形式是由这些数据来确定的,当数据发生变化后,我们通过刷新显示区来变化的.
二、程序流程
发送到串口来的数 按 《 方 式 查
选择接收数据的方查看以前的数据 接收数据 打开以前的数据文件 显示 保存数据 按》方式查按<方式查按>方式查
发送到串口来的数
OnComm() OnComselect(),OnComspe查看以前的数据 打开以前的数据文件
Display() OnPaint() OnComm() OnButton4(OnButton5(OnButton7OnButton6(三、串口程序设计
///////////////文件 commDlg.cpp////////////////
//一个类,对话框类,本程序使用的是对话框形式,这个类是在VC用MFC自动生成的,其中包括了对话框程序应有的一些方法 class CAboutDlg : public CDialog { };
/********************以下的个方法也是VC的MFC的对话框程序固有的,也是MFC自动生成的**************/
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { }
void CAboutDlg::DoDataExchange(CDataExchange* pDX) { }
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) END_MESSAGE_MAP()
CCommDlg::CCommDlg(CWnd* pParent /*=NULL*/): CDialog(CCommDlg::IDD, pParent) { }
void CCommDlg::DoDataExchange(CDataExchange* pDX) { }
//下面这个包括的是界面中的组件
BEGIN_MESSAGE_MAP(CCommDlg, CDialog) END_MESSAGE_MAP()
// CCommDlg message handlers BOOL CCommDlg::OnInitDialog() { }
void CCommDlg::OnSysCommand(UINT nID, LPARAM lParam) { }
// The system calls this to obtain the cursor to display while the user drags the minimized window.
HCURSOR CCommDlg::OnQueryDragIcon() { }
BEGIN_EVENTSINK_MAP(CCommDlg, CDialog) END_EVENTSINK_MAP()
/********************以上的个方法也是VC的MFC的对话框程序固有的,也是MFC自动生成的**************/
/********************我在做这个程序时以上的程序并没有手动修改*******************************/
// 画图函数
// 算法:运用LineTo函数把120个点连成折线 void CCommDlg::OnPaint()