首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于LabVIEW的单片机脉冲发生器

基于LabVIEW的单片机脉冲发生器

3.2LabVIEW中利用VISA实现串口通信

  在LabVIEW中使用串口的基本流程为:先调用VISA Configure Serial Port来完成串口参数的初始化设置,包括了串口的资源分配,波特率的设定,数据位、停止位、校验位和流控制等。

  当某一个串口初始化成功后,就可以使用该串口进行数据的收发。使用VISA Write进行数据的发送,使用VISA Read进行数据的接收。在接收数据前,有时需要VISA Bytes at Serial Port查询当前串口接收缓冲区中的数据字节数,如果VISA Read要读取的字节数大于缓冲区中的数据字节数,VISA Read操作将一直等待,直至缓冲区中的数据字节数达到要求或是等待时间满足VISA Configure Serial Port所设定的Timeout。  在对数据的连续性要求不高的时候,VISA Read也支持分批读取接收缓冲区里的数据字节或者只是读取其中的一部分字节。

  在某些特殊的情况下,可以利用VISA SET I/O Buffer Size设置串口接受/发送缓冲区的大小,使用VISAFlash I/O Buffer清空接收与发送缓冲区。  在串口使用结束后,使用VISA Close结束与VISAresource name所指定串口间的会话。

  该LabVIEW程序框图中调用了一个叫做change的子VI程序,该子VI程序的功能是将高低电平的脉冲宽度值,转换成定时器的初始值,并且拼凑成一个4个字节的16进制数,通过VISA Write模块送入下位机。该子VI的程序框图如图5所示。





在接收到数据后,单片机有一条反馈的指令,他将其缓冲区内的值再次送回上位机,LabVIEW对该值进行显示,并可以和原来实际输出的16进制数进行比较。用户可以很方便地知道,是否在上下位机通信中出现误码。

  图6左侧的倒三角表示从图4(a)的VISA Read中接收到的值,他与LabVIEW上一次显示的值拼装成一个完整的字符串,成为新的显示值,在字符串显示区显示出来。


返回列表