Labview与单片机进行串口通信
Labview与单片机进行串口通信
做毕业设计时,遇到需要使用Labview作上位机与单片机进行串口通信的情况,在这里与大家分享开发的过程。
一、简介
这里使用基于Labview设计的程序作为上位机,基于Keil设计单片机程序作下位机,两者实现串口通信。需要用到的硬件为:stm32f103c8t6单片机、USB转TTL烧录线。用到的软件为:Labview2016、Keil5。
二、单片机程序
单片机程序用的就是正点原子中串口通信的程序,不需要修改,主函数部分如下:
int main(void)
{ u8 len,t;delay_init(); //延时函数初始化 NVIC_Configuration();//中断分组uart_init(9600);//串口初始化while(1){if(USART_RX_STA&0x8000){len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度printf("\r\n您发送的消息为:\r\n");for(t=0;t<len;t++){USART1->DR=USART_RX_BUF[t];while((USART1->SR&0X40)==0);//等待发送结束}printf("\r\n\r\n");//插入换行USART_RX_STA=0;//标志位清零}}
}
三、上位机Labview程序
用Labview来进行上位机设计,需要用到下图中的串口函数。
根据上面的函数进行搭建就可以得到下面的串口通信上位机程序。下图为上位机的前面板。
下图为上位机的程序图。
在弄串口通信的上位机程序时,主要遇到了两个问题:
1、上位机发送部分忘加回车换行
上位机制作时需要与单片机中的程序相对应才行,单片机中的串口程序把“回车+换行”认为是一段字符的结束,所以在上位机发送字符时,需要在末尾加上“回车”、“换行”。
如果没有这个,单片机虽然会产生串口中断,但因为没有回车换行,单片机会认为这段字符没有接收完,它就会一直等在那。产生可见的错误就是,上位机给单片机发送字符串,单片机端没有响应。
2、读取串口函数读一次之后就卡顿
在Labview的串口函数部分,有一个读取缓存区的函数,这个函数是用来读取单片机向上位机发送的字符用的。
在使用时需要设置字节总数这个参数,这个参数是用来设置缓存区的大小的。假设字节总数为100,那么函数就会当接收到的字节满100之后才会去读,这样就会产生上位机显示单片机发来字符串不及时的情况。
为了解决这个情况,这里使用了属性节点的方法。使用属性节点的功能就是,缓冲区每传来一个字符,程序就去读,这样就不存在等待的情况。
写的不妥之处请大家见谅,欢迎大家留言批评指正!
资源下载
https://download.csdn.net/download/ss123bs456/86246543
Labview与单片机进行串口通信相关推荐
- labVIEW与单片机实现串口通信的设计过程
1.概述 在现代测控系统中,我们经常会采用上位机和下位机的开发控制模式.下位机主要是用来采集数据,可以通过嵌入式控制器.单片机控制器.PLC等来实现.上位机主要是图形界面,用来实时显示采集数据,并进行 ...
- arm linux串口控制led,通信程序设计 - Linux下ARM和单片机的串口通信设计
3 通信程序设计 ARM 与单片机的串口通信程序包括两方面: 一方面是作为上位机的ARM 的串口通信程序,另一方面是作为下位机的单片机的串口通信程序.在通信之前必须制定合理的通信协议以保证通信的可靠性 ...
- 51单片机stc15w204s串口通信发数据接收数据串口中断发中文字符串完美运行软件延时发送一字节函数全注释
这里写自定义目录标题 KEIL自己先调试通了然后再说下面的事 51单片机stc15w204s串口通信直接上文件 KEIL自己先调试通了然后再说下面的自己看看就可 KEIL自己先调试通了然后再说下面的事 ...
- 51单片机之串口通信
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.串口介绍 二.电路 三.寄存器 四.串口通信操作流程 前言 2022.9.14的学习记录.` 一.串口介绍 串口是 ...
- MATLAB与51单片机进行串口通信详解
目录 一.51单片机与电脑进行串口通信 二.MATLAB串口通信函数 三.串口属性 四.示例Demo 4.1 MATLAB接收单片机发来的数据 4.2 MATLAB向单片机发送数据控制LED 五.总结 ...
- 22.从零开始开发QT软件思路(单片机的串口通信)-- OpenCV从零开始到图像(人脸 + 物体)识别系列
本文作者:小嗷 微信公众号:aoxiaoji 吹比QQ群:736854977 链接:https://mp.weixin.qq.com/s?__biz=MzU1MTgxNjQyMg==&temp ...
- Proteus仿真stm32和51单片机,串口通信调试过程记录
前言 本文所用Proteus版本为8.10,主要内容为在Proteus中仿真stm32和51单片机进行串口通信,记录了仿真过程中遇到的问题和解决办法. 这里要注意的是,在Proteus中 ...
- 单片机_串口通信知识详解
单片机_串口通信详解 楼主在实际的项目开发过程中,特别是用一些比较常见的传感器,使用最多的通信方式可能就是串口通信了,特别是UART(通用异步收发器),线少,虽然传输速度没有并行传输高,但是 ...
- ARM内核单片机的串口通信(UART)使用(数据的收发)
ARM内核单片机的串口通信(UART)使用 进入正题: 首先,要明白使用UART进行通信,无论收发数据,传输的都是16进制.而中文.英文.标点符号其本质都是16进制,只是一个中文需要用两个字节表示,一 ...
最新文章
- 20分钟教你搞懂Git!
- mysql表只有frm文件_MYSQL数据文件--.frm文件(只有.frm文件时的表结构恢复)
- “挤掉”优衣库的Ubras、蕉内、内外等新内衣品牌们,到底牛在哪?
- J.U.C系列(三)Semaphore的使用
- java http超时重连_httpclient 重连机制
- ROS中阶笔记(二):机器人系统设计—URDF机器人建模
- 25@JSP_day09
- java订单类_使用Java创建一个订单类代码实例
- mysql匿名账户登录导致的ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'错误...
- javascript中Promise深入理解(一)
- VS 2015 专用卸载工具
- Mixly米思齐_点阵
- c语言打印100以内质数,C语言 · 打印1~100间的质数(素数)
- 分布式缓存 - memCached Voldemort
- 某计算机内存容量8GB,按字编址,每个字包括2字节,需要多少根地址线?
- Graph Convolutional Neural Network - Spatial Convolution 图卷积神经网络 — 空域卷积详解
- 如何实现上传多个图片并依次展示_如何在一张ppt中插入多张图片并能依次播放...
- 初级软件测试工程师工资(薪资待遇)一般是多少?
- 使用NextDenovo组装Nanopore数据
- 骨牌铺方格java_[ACM_HDU_2046]骨牌铺方格 | 学步园