完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我使用的是STM32M4系列的板子,用一个ADC,12位分辨率,独立模式,3通道采集发送,DMA缓存大小设置为15,然后使用的是重定向过的 printf("%.2f",ADC_ConvertedValueLocal[0]) 发送给上位机串口,ADC_ConvertedValueLocal数组大小为3,在labview上接收到后是类似“3.303.303.303.293.303.303.303.303.303.”这样的数据,该如何分别提取三个通道的数据呢?
备注:发送的数组为uint16_t数据类型,串口配置为8-N-1,115200, 网上查过资料,有的是利用终止符,有的是将三个数组的数据打包封装成一帧数据,然后在Labview上通过字符串偏移拆开,再组合用波形图表显示。 我现在的问题是被发送的数组数据是16位,而调用的发送库函数是发送字节的,在Labview上VISA节点的读数大小为多少?该如何拆开分别显示呢?有没有哪位前辈有这方面的相关程序发来借鉴一下呢,现在是越搞越乱 |
|
相关推荐
7个回答
|
|
给个简单思路:3组12bit ADC,3个word可以装下,将这6个byte直接发送到串口,发送前先发送帧头(如0x55,0xaa)。labview空闲时每次读一个byte直到收全帧头,然后再连续读6个byte,由labview还原3组ADC采样。你甚至可以改进在帧尾加上checksum也是可以的。
|
|
|
|
就别用printf发送,自己写发送函数
|
|
|
|
首先非常感谢您的解答。
我的下位机(STM32)中编写了一个简单的数据滤波,就是DMA缓存设置为15,定义一个二维数组存放[5][3],再转置为[3][5],即每行的5个数据为每个通道所采集采集的数据,然后我对这5个数据进行去极值后平均化后,分别存放于另外一个一位数组[3],然后printf送到串口。您说的帧头数据需要单独发送,还是和6字节的数据一起打包发送呢?发送到串口使用 USART_SendData这个库函数而不printf函数对吧?Labview接收数据后,VISA中Read节点上的接收数据大小应该设置多少合适呢?大佬你您可以发一套类似的案列程序给我参考一下嘛 |
|
|
|
我也怀疑过是不是这个问题,是不是实际应用的时候都是直接用 USART_SendData这个函数发送的呢
|
|
|
|
自己写寄存器版本就可以不用,但是功能应该都是一样的
|
|
|
|
|
|
|
|
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
490 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
954 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1534 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1466 浏览 3 评论
1744 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 21:15 , Processed in 0.769223 second(s), Total 88, Slave 70 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号