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

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


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

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

图 4-1 最终用户界面 表 4-1 主要控件的基本属性列表 控件类型 面板 Panel Cons

tant 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实验实验四_信息与通信_工程科技_专业资料。文档为哈工大制作的...实验四 1.任务设计一窗口闪烁程序,使其每 0.5 秒闪烁一次。 2.实验步骤步骤...
哈尔滨工业大学CVI实验实验五
3页 免费 哈尔滨工业大学CVI实验实验... 6页 免费 哈尔滨工业大学CVI实验实验... 6页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功能问题或意见建议,...
哈工大CVI实验二详解
哈工大CVI实验二详解 暂无评价|0人阅读|0次下载|举报文档 前面板 前面板控件名称...(POINTS, ample, freq/sampleRate, &phase, waveData); break; case 3:/*...
哈尔滨工业大学创新实验课管理办法(附件2)
3.创新实验课获得资助并结题验收合格后,至少要连续开出 3 年的实验课 程。...1/2 相关文档推荐 哈尔滨工业大学CVI实验实... 11页 免费 哈尔滨工业大学大学...
哈工大CVI实验四详解
哈工大CVI实验四详解 暂无评价|0人阅读|0次下载|举报文档 前面板: 如图,该前面板中共有三个控件:时钟、闪烁开关钮、退出按钮。 定时器用于设定一个时间间隔, 闪...
CVI实验指导书2012版-8
《现代测试技术》课程实验指导书 孔忻 白洁 骆一萍 西安交通大学测控教研室 2012 年 3 月 目录 实验一 熟悉 LabWindows/CVI 集成软件开发环境 实验二 虚拟波形...
哈工大(威海)c语言实验报告册答案
只针对哈尔滨工业大学(威海)的C语言实验册的习题答案实验一、实验学时 完成本...A*A=i+100 B*B=i+168 是 输出i 否 - 14 - 3、程序选做题 (1) ...
虚拟仪器实验指导二
47页 2财富值 哈尔滨工业大学CVI实验实验... 11页 免费 DCS教程 18页 免费 LabVIEW虚拟仪器实验报告 8页 免费如要投诉违规内容,请到百度文库投诉中心;如要提出功...
哈工大威海计算机网络实验报告3
优秀 良好 及格 不及格 一、TCP 实验三次握手包 第一次握手截图 第二次握手截图 2 哈尔滨工业大学(威海) 计算机网络与通信实验报告(三) 第三次握手截图 问题...
哈尔滨工业大学(威海)_密码学应用与实践实验
哈尔滨工业大学(威海)_密码学应用与实践实验_计算机软件及应用_IT/计算机_专业资料...2, 8, 24, 14, 3, 9, 32, 27, 1, 5, 9, 13, 17, 21, 25, 2...
更多相关标签:
哈尔滨工业大学实验室 | 哈尔滨工业大学 | 哈尔滨工业大学威海 | 哈尔滨工业大学学报 | 哈尔滨工业大学深圳 | 哈尔滨工业大学图书馆 | 哈尔滨工业大学研招办 | 哈尔滨工业大学教务处 |