一、电机转数
在机械厂成功获取电机转数,在串口接线时,把VCC、RXD、TXD、GND四根线都接上,其中VCC-8,GND-9,RXD-10,TXD-11。其中TTL-232电平转换模块的电源输入可以从VCC输入,即在电脑-电机控制器-开发板三者连接中,可以由电脑的VCC端来供电。
二、labview串口被动接收数据
这里labview被动接收传感器发送来的数据,即在开发板获取传感器的数据来进行计算控制时,labview用来数据的采集。
这里可以参考下面这篇文章,接下去具体分析自己编的labview程序。http://www.docin.com/p-148766261.html#0-tsina-1-61364-397232819ff9a47a7b7e80a40613cfe1
labview串口配置和指令发送
这是labview串口配置和指令发送,指令发送用于主动发送再接收时,此处不需要用到该模块,直接将if结构置假即可,或者直接删除。这其中用到的CRC子vi主要是在输入指令不同时自己计算出校验位,如果程序始终只用到一个电机运行速度读取命令,可以直接手工计算并发送校验位。
由于被动接收数据,所以接收到的数据不一定是刚刚好从标识位开始,所以要进行识别。这里用到while循环的移位寄存器,每次连续读取15位,因为一串完整的命令为8位,所以连续15位中肯定存在一组完整的数据,但这样读取数据的弊端在于每读取一串数据必定损失掉一串数据,考虑到labview读取的速度跟不上传感器发送数据的速度,所以这其中会损失掉很多数据,但读取的数据还是可以整体上反应出倾角传感器倾角的变化情况。
串口数据读入并寻找帧头
未找到帧头
读取15位数据后进行帧头寻找,第一位为68,第二位为07,注意都是16进制表示的。如果找到帧头,就输出帧头索引值,如果找不到帧头就将索引值置为14,即最后一位,使得后面索引到的数据都为0,即倾角为0。
数组索引和数值转化
根据通信协议,将索引值开始的3位数据读出并转为所需要的角度值,注意正负的转换。
三、接线问题
在倾角传感器-开发板-电脑labview连接中,开发板和传感器之间严格进行着发送一串数据接收一串数据的传输,而电脑labview只是来接收传感器数据,所以电脑labview只用RXD端连接传感器的TXD端,TXD置空,因为发现TXD如果接入三者连线中,会导致单片机和传感器间发送接收异常,这个问题在电机控制器-开发板-电脑labview中应该注意避免。
关键字:labview 串口 被动接收数据
引用地址:
labview串口被动接收数据
推荐阅读最新更新时间:2024-03-30 23:04
嵌入式系统中串口通信帧的同步方法
引 言 串口通信是日前单片机和DSP等嵌入式系统之间,以及嵌入式系统与PC机或无线模块之间的一种非常重要且普遍使用的通信方式。在嵌入式系统的硬件结构中,通常只有一个8位或16位的CPU,不仅要完成主流程的工作,同时还要处理随时发生的各种中断,因而嵌入式系统中的串口通信程序设计与PC机有很大的不同。若嵌入式系统中.中断服务子程序在系统运行过程中占用了较多的时间,就有可能在中断眼务子程序正运行时,又产生一个同类型或其他类型的中断,从而造成主程序得不到执行或后续中断数据丢失。所以,嵌入式系统中的串口通信虽然看似简单,但其中仍有许多问题值得研究,例如串口通信过程中的帧同步问题。本文针对该问题给出了逐次比较、基于FIFO队列和基于状态机的
[工业控制]
stm32下载方式之串口ISP\swd
1.首先看一下stm32启动模式 stm32的启动模式由32芯片的boot0与boot1引脚决定。分为内嵌flash启动模式(正常启动模式)、内存启动模式、rom启动模式 启动方式与引脚高低电平的对应关系如下,芯片复位的四个时钟周期内会去读取boot0和boot1引脚的电平情况确定芯片的运行模式。 boot0=0,boot1=x ----------------内嵌flash启动模式 boot0=1,boot1=1 ----------------内存启动模式 boot0=1,boot1=0----------------rom启动模式(串口isp下载程序) 2.串口isp下载方式 isp串口下载HEX
[单片机]
一个非常不错的串口程序
//PC读MCU指令结构:(中断方式,ASCII码表示) //帧: 帧头标志| 帧类型| 器件地址| 启始地址| 长度n| 效验和| 帧尾标志 //值: ’n’ ’y’ | ’ r’ | 0x01 | x | x | x | 0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其
[单片机]
STM32—无需中断来实现使用DMA接收串口数据
本节目标: 通过DMA,无需中断,接收不定时长的串口数据 描述: 当在串口多数据传输下,CPU会产生多次中断来接收串口数据,这样会大大地降低CPU效率,同时又需要CPU去做其它更重要的事情,我们应该如何来优化? 比如四轴飞行器,当在不停地获取姿态控制方向时,又要去接收串口数据. 答:使用DMA,无需CPU中断便能实现接收串口数据 1.DMA介绍 DMA,全称为: Direct Memory Access,即直接存储器访问, DMA 传输方式无需 CPU 直接控制传输,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路,能使 CPU 的效率大为提高。 2在main()中调用串口配置函数,初始化串口后,然后使能UA
[单片机]
【嵌入式开发】STM8S103F3P6单线半双工串口通信
最近突然接手一个项目,很基础的一些单片机操作就可以完成,唯一值得说道的就是受限于任务要求,需要采用单线通信方式。拿到这个要求的时候有点懵,之前倒是从来没有用过单线的串口通信。 首先翻了下StrongerHuang的例程,没有,看来还是只能自己来了,在这也对StrongerHuang表示感谢,找到datasheet,这里直接可以看到STM8支持单线半双工,还有别的方法,后面再说。 既然有这样的功能,那么再找找Reference manual看,所有的信息如下: 可以看到讲得很简单,主要就是控制寄存器的配置和引脚的设置。按照这个搞了一天都没有弄出来。问题主要出在哪呢(直接马后炮)? 引脚使用。上面提到了单线半
[单片机]
stm32f103之串口实验
stm32f103之串口实验,串口相互通讯即用同一个单片机的串口1与串口3相互通讯 串口1,串口3都接到电脑上,选上”Use MicroLIB”这是KEIL自带的一个简易的库,例如你用printf函数的时候,就会从串口1 输出字符串,直接默认定向到串口1。(此程序中两个波特率不匹配,接受会出错,在实践中要设置串口一致的波特率)以下是程序 #ifndef __USART_H//头文件 #define __USART_H #include stdio.h #include sys.h void usart3_init(u32 bound);//如果想串口中断接收,请不要注释以下宏定义 void uart_in
[单片机]
LabVIEW实现水循环温度控制系统
引 言 随着虚拟仪器的功能和性能被不断地提高,在许多应用中已成为传统仪器的主要替代方式。 本文以水循环系统为研究对象,针对水循环的温度,在比较研究不同控制策略的基础上,建立精确的数学模型,对水循环温度控制进行了研究。通过数据采集卡对温度信号进行实时采集,并由软件平台对采集的信号进行分析,然后用数学模型控制算法处理输出,以使当前温度逼近设定值,从而达到温控目的,最后将采集数据保存记录,以备日后读取分析。利用虚拟仪器的巨大优越性改善水循环温度的控制品质,提高控制效果。 1 水循环温度控制系统数学模型的建立 1.1 水循环温控系统介绍 水循环温控系统由储水箱、水泵、传感器、散热器和电加热装置组成,水循
[测试测量]
如何采用STM32单片机串口接收数据
0目标1STM32串口简介 2硬件设计3软件设计 4下载验证 0.目标 利用串口1不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑。 1.STM32串口简介 串口设置的一般步骤可以总结为如下几个步骤: 1)串口时钟使能,GPIO时钟使能 2)串口复位 3) GPIO端口模式设置 4)串口参数初始化 5)开启中断并且初始化NVIC(如果需要开启中断才需要这个步骤) 6)使能串口 7)编写中断处理函数 注:对于复用功能的IO,我们首先要使能GPIO时钟,然后使能复用功能时钟,同时要把GPIO模式设置为复用功能对应的模式。 查看手册《STM32 中文参考手册 V10》P110 的表格“8.1.1
[单片机]