当前位置:首页 >> 信息与通信 >>

哈尔滨工业大学CVI实验实验三(选做题二)


选题二: 选题二:
1.任务
编写一个自发自收的 RS-232 串口通讯程序(电缆连接 2-3) 。

2.实验步骤
步骤 1:根据要实现的功能,设计如图 4-1 所示的用户界面,其具体设置如表 4-1 所示。

图 4-1 最终用户界面 表 4-1 主要控件的基本属性列表 控件类型 面板 Panel Constant Name PANEL Callback Function Lable COMMANDBUTTON Callback Function Lable STRING 文本型控件 Text TEXTBOX 定时器控件 Timer Callback Function Lable Callback Function Lable TIMER Callback Function Lable recieved message ReceivedTimerCB Timer send message QuitCallback __Quit SendMessageCB __Send 属性设置

QUITBUTTON 命令按钮 Command Button

步骤 2:生成代码框架。选择 Code→Generate→All Code, 生成代码框架。 步骤 3:打开串行口 1 并进行配置。此部分代码添加在主函数中,如下所示。 int main (int argc, char *argv[]) { if (InitCVIRTE (0, argv, 0) == 0) return -1; /* out of memory */ if ((panelHandle = LoadPanel (0, "lesson7.uir", PANEL)) < 0) return -1; DisplayPanel (panelHandle); OpenComConfig (1, "", 14400, 0, 7, 1, 512, 512);/*打开串行口 1 并进行配置*/ /*为串行口 1 设置一个回调函数,当串行口 1 收到待检测字符时就调用回调函数 ReceivedCallback 给出提示。*/ InstallComCallback (1, LWRS_RXFLAG, 0, '\0', ReceivedCallback, 0); RunUserInterface (); DiscardPanel (panelHandle); return 0; } 在上述代码中函数 OpenComConfig 和 InstallComCallback 的参数设置见图 4-2,4-3。两 函数的调用路径分别为:Library→RS-232 Library→Open/Close→Open COM and Configure, Library→RS-232 Library→Callbacks→Install COM Callback。

图 4-2 OpenComConfig 函数面板

图 4-3 InstallComCallback 函数面板 函数 ReceivedCallback 实现数据的接收,其代码如下: /*注意此函数必须在 main 函数之前声明*/ void CVICALLBACK ReceivedCallback (int portNo, int eventMask, void *callbackData) { char string[100]; int i; i = GetInQLen (1);/*获得输入队列中数据的长度*/ ComRd (1, string, i);/*读取输入队列中的数据*/ InsertTextBoxLine (panelHandle, PANEL_TEXTBOX, -1, string);/*在文本框的最后一行插 入数据*/ } 上述代码中所用到的函数参数设置和调用路径如下: (1) 函数 GetInQLen,获得输入队列中数据的长度,其调用路径为:Library→RS-232 Library→Status→Get Input Queue Length。 (2) 函数 ComRd,读取输入队列中的数据,其调用路径为:Library→RS-232 Library→ Input/Output→Read Buffer,其参数设置见图 4-4。 (3) 函 数 InsertTextBoxLine , 插 入 数 据 , 其 调 用 路 径 为 : Library→Uer Interface Library→Controls/Graphs/Strip Charts….→Text Boxes→Insert Text Box Line,其参数 设置见图 4-5。

图 4-4 ComRd 函数面板

图 4-5 InsertTextBoxLine 函数面板

步骤 4:利用串行口发送数据。在本实验中我们通过回调函数 SendMessageCB 实现数 据的发送,其代码如下: /*发送信息 SendMessageCB 回调函数*/ int CVICALLBACK SendMessageCB (int panel, int control, int event, void *callbackData, int eventData1, int eventData2) { int i; char string[100]; switch (event) { case EVENT_COMMIT: GetCtrlVal (panelHandle, PANEL_STRING, string);/*获得发送信息*/ i = StringLength (string);/*获得发送信息长度*/ ComWrt (1, string, i+1);/*把信息写到输出队列*/ break; } return 0; } 上述代码中所用到的函数参数设置和调用路径如下: (1) 函数 StringLength,其调用路径为:Library→Formating and I/O Library→String Manipulation→Get String Length。 (2) 函数 ComWrt, 其调用路径为; Library→RS-232 Library→Input/Output→Write Buffer, 其参数设置见图 4-6。

图 4-6 ComWrt 函数面板 步骤 5:保存并运行程序。


相关文章:
哈尔滨工业大学CVI实验实验四
哈尔滨工业大学CVI实验实验四_信息与通信_工程科技_专业资料。文档为哈工大制作的...步骤 3:编写回调函数 /*双态控件回调函数*/ int CVICALLBACK FlashCB (int ...
哈尔滨工业大学CVI实验实验二
哈尔滨工业大学CVI实验实验二_信息与通信_工程科技_专业资料。文档为哈工大制作的...(POINTS, ample, freq/sampleRate, &phase, waveData); break; case 3: ...
哈尔滨工业大学CVI实验实验七
哈尔滨工业大学CVI实验实验七_信息与通信_工程科技_专业资料。文档为哈工大制作的...步骤 3:获得异步定时器句柄,在 main 函数添加如下语句: static int AsyncTimer...
虚拟仪器实验指导二
47页 2财富值 哈尔滨工业大学CVI实验实验... 11页 免费 DCS教程 18页 免费 LabVIEW虚拟仪器实验报告 8页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功...
哈工大CVI实验四详解
哈工大CVI实验四详解 暂无评价|0人阅读|0次下载|举报文档 前面板: 如图,该前面板中共有三个控件:时钟、闪烁开关钮、退出按钮。 定时器用于设定一个时间间隔, 闪...
哈工大CVI实验二详解
哈工大CVI实验二详解 暂无评价|0人阅读|0次下载|举报文档 前面板 前面板控件名称...(POINTS, ample, freq/sampleRate, &phase, waveData); break; case 3:/*...
哈工大CVI实验三详解
哈工大CVI实验三详解 暂无评价|0人阅读|0次下载|举报文档 前面板: 如上图:图中有四个控件,分别为:字符串输入框(string) 、文本输入框(Text box) 、发送 按...
哈工大CVI实验一详解
哈工大CVI实验一详解 暂无评价|0人阅读|0次下载|举报文档 哈工大 CVI 实验一详解 前面板: 注释:在此前面板中,共有三个控件:旋钮、垂直滑动指针、退出按钮 程序...
哈工大CVI实验五详解
哈工大CVI实验五详解 暂无评价|0人阅读|0次下载|举报文档 前面板: 控件:WindowsMediaPlayer、退出按钮 程序: #include <cvirte.h> #include <userint.h> #incl...
文献综述
二零一三年三月 摘要在工业领域中, 温度是工业生产...CVI 以及 LabVIEW 中加入了网络通讯处理模块[ 6] ...汽轮机工 况监测和诊断系统 KBGMD.哈尔滨工业大学...
更多相关标签: