你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于Labview上位机界面的NUCLEO-072RB数据采集系统 精华  

[复制链接]
fengye5340 发布时间:2015-1-8 14:39
本帖最后由 fengye5340 于 2015-1-8 14:44 编辑
/ V; K$ z- k& K4 u3 \0 j1 N/ v4 h' C# [- y# t& f7 U
      LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
' r6 {! A/ ]6 p' k这 一篇文章讲解一下利用Labview软件实现和STM32-NUCLEO-072RB开发平台的通信,并实现一个简易数据采集系统。文章第一部分讲解 labview串口通信VI函数的实现。第二部分讲解一下STM32F0 ADC模块和库函数介绍,第三部分讲解一下MCU端代码软件的实现。
" L: g5 m# f0 J4 R; z一、labview串口通信VI函数2 h: O# r7 P( m! n) {6 r5 b) g" C" U) f
要想实现一个完整的MCU和PC端Labview的软件串口通信,必须要打通一个串口的“通道”!也就是:
+ D' \) z+ v! P! V- R下位机:也就是MCU程序中要实现串口收发的底层驱动 * w$ s1 Y0 p" K( {6 a
中间通信线:提供了一个MCU串口到电脑串口的硬件连接:3条线
$ M7 [) F# J4 W8 M' a上位机:labview软件开发串口通信程序0 H0 {6 X& n9 M; f7 \- }, b4 d
labview 里面实现串口通信有两种方法:一种是采用软件自带的VISA串口通信VI函数实现,另外一种是借助MSComm控件实现。第一种方法简单易用,便于快速掌握,第二种控制支持查询和事件驱动,功能好用,可以支持像 VB/VC++/delhpi这样的开发环境中使用!1 e. H' W  d; g8 X9 @
Labview软件的控件在labview软件的如下位置:4 u) j2 c* O/ B: D; [
1.jpg
) U3 O6 u4 f6 ~7 M7 E9 R1 ~. ^/ C. x, B" n. y
labview串口函数内容:
; x* n( c/ n& |( {3 n3 \: Z4 C 2.jpg * p* `9 H$ T' p: z
! F) r4 n; y1 b. {$ k* A( }: ~% e
有了这些函数,实现串口VI就不难了,下面是一个串口VI的后面板程序图:2 c& H- Y, k3 o3 t4 z
3.jpg + J; P  m, K# V( l- X( f
+ h2 U& y. B( J* a
通过串口接收到非空字符后,将2个8位数据合成一个16位数据,然后将放大后的整数除以1000倍,送到波形图中显示出来,在循环里面没有增加延时,这样会占用计算机内存较多。$ @; e3 Z  n  T
二、STM32F0的ADC模块及库函数STM32F0ADC特性
' E5 d7 B) W- _8 i4 R
1、12位精度下转换速度可高达1MHz
# y+ {/ P. {: |( v# J4 ]) O. b2、可配置的转换精度:6位,8位,10位,12位 7 ]  _0 j5 R+ x9 G4 ^& p- D
3、转换电压范围:0 ~ 3.6V,VSSA ~ VDDA
" e1 K+ o' _* P3 h4、供电范围:2.4V ~ 3.6V, p" l" M3 V+ t$ t4 j; w
5、19个转换通道,其中16个外部通道和3个内部通道(温度传感器内部电压参考§电池供电监测)
/ Z. U, C. M7 b3 M4 Q# f' Q6、采样时间可配置 ' m+ \) c' g) z+ g
7、ADC模块自校准 0 V$ d" E8 ^/ D/ T7 N# L8 |& i
8、扫描方向可配置
* d1 W( H3 a3 H 9、专用14MHZRC时钟或者内部时钟分频
9 C; a0 n% Y5 z, A 10、多种转换模式:单通道单次,单通道连续,多通道单次,多通道连续、间隔
/ K+ @  B  |6 ]9 z! X11、数据存放对齐方式可配置:左对齐,右对齐
: {0 r; S& O; P4 | 12、启动转换方式可配置:软件触发,硬件触发
' h. @0 W1 j3 S% X4 ~13、可设置上下门限的模拟看门狗 " Y$ x4 D  P" C: g7 E  Y
14、DMA功能
5 T: a$ T( N" j6 n! U2 ?# K+ e15、自动延迟转换模式
. G# n+ a' s/ J* g2 k" p 16、自动节电模式
0 C+ d, u& b/ h6 f5 m17、多种中断源:(ADC模块就绪、转换结束、转换序列结束、采样阶段结束、模拟看门狗报警、溢出错误 )
9 p5 e1 w8 u0 C! Q$ x; ZSTM32F0ADC采集通道引脚: d3 P% P- h( y& t1 x3 O
4.jpg 1 w& u8 ]  N! s+ z- |  K9 P
+ Z/ x+ J1 x" q
这里用的是PB1通道
- Z8 S; e) |6 `, q* T# C/ {
5.jpg / p0 H! W3 b1 {2 r( E- `7 ^
/ D9 H# V3 G/ @) [
STM32F0ADC部分库函数介绍ADC结构体定义ADC_InitTypeDef! @! z/ [" t. f; }7 N2 N
6.jpg
" y: x. Q# f& x 7.jpg
0 [# Z, A" @$ W$ e 8.jpg 1 e+ A" _' A* L& E* _
# [& k0 O% d# X5 _4 x
例程用到的ADC库函数
) F3 W  s- n: E) x0 M+ s2 M0 p" ^  S
ADC_Init();
8 n6 X, z' ?% Q: Y  Q$ S
ADC_StructInit();! I3 ^8 K' \6 c  ~' u4 w
ADC_Cmd();
& s' `. ~9 y9 n' S1 t" {1 _ADC_ChannelConfig();7 L) ?: O8 ^4 @& u# I; [
ADC_GetCalibrationFactor();) F7 X  C( T/ j9 H: F
ADC_DMACmd();
; b6 {0 e/ ^' _ADC_StartOfConversion();
$ O, A+ {( u4 v; V% i& ^
ADC_GetITStatus();
& P8 U0 w4 E' C- ~- a
DMA_Init();
3 }$ Q2 y1 N8 u( m% s8 G& P+ m- vDMA_ITConfig();
4 Z. S, h9 ?4 J& l
DMA_Cmd();" Q) z0 V) `) [2 Z; g
ADC_DMARequestModeConfig(), T% q4 M2 |. b* j( j
DMA_GetFlagStatus()/DMA_ClearFlag 有了这些代码,看一下具体的代码实现:4 T9 E, F" C; N2 C( c
三、DMA方式下单通道数据采集代码实现1、Keil-mdk工程模板中加入ADC.C文件, 在includes.h文件中加入ADC.H头文件
/ c: a# m2 l; ^2 c9 C
% q9 l; n3 g+ T6 q% m
9.jpg
) N- @  N& Q& V0 x9 n  G: {! b: o9 h3 W

4 G0 |* @9 S, I8 f  Q# Z. C2、在ADC.H头文件宏定义: N# O: `+ a- H" V. o. U
10.jpg
; Q/ E+ `& [2 Q/ J  p5 Q. {$ l" E" L6 S8 B/ S6 ~# L, T9 P$ f
3、采用DMA方式的ADC_DMA_Init()代码实现$ O6 W& t/ W5 P7 T* r+ @& w8 F
11.jpg
  D5 t; j" y* J4 U  Q 12.jpg
, a; [8 G# ^% x/ i) N$ r
6 u$ f. X9 L2 L3 q4、向labview发送2个字符函数ADC_Value_Send()实现
) x, ^5 h* ]0 h. s$ L9 B- M7 a( c
    13.jpg
% u% w- V8 h* {& R/ I: }: {2 h! {! I5 x1 X* m+ ^2 G2 c
5、DMA中断优先级及服务函数实现( M7 q4 `( S* J8 {: x# T
14.jpg
: Y/ Y$ y7 b0 F  O# d& R& Y( o8 n) g7 F* Q+ [0 i
6、main.c函数代码实现1 g/ p& H) f$ T9 r7 l9 c' N5 b
15.jpg
- v% v/ b& Z9 i& `. Q0 {
6 t# Y9 s  D. Z+ t$ x7、实验现象硬件连线图:
2 v  b5 W3 ~6 x* a6 {/ c/ Q( t6 D0 T3 M
16.jpg
' r4 Y9 d7 {9 Y# O9 J5 k- o$ n1 F# M5 E1 o
Labviewvi运行界面
2 [. n. {3 {' S4 e8 v# ?
17.jpg
% I" D- x( o6 W
' _0 x: F+ d% H. n- x# g1 M! A- c
+ {7 M# q% F0 W1 u9 P$ L' g. }2 P7 U1 N4 _, i
代码地址链接http://www.eeboard.com/bbs/thread-39696-1-1.html
' D$ N' W$ D/ X. S5 b# t" T' F摩尔吧视频地址链接
https://www.moore8.com/courses/3062 E* {6 g$ \) t' s9 r
% Z# V* {/ o2 _: C1 ?1 j

) B9 q2 y- g9 n0 y* E# k
" i/ s" [2 d% a1 N3 {. o( \
! Z4 V# a5 T6 ~' M; d
$ }, z7 W2 X; R- \1 l* X# E" b5 D; n: K3 U. c; I7 x2 Y

4 G' E, s0 n% f0 }, r) W0 J9 F) _9 N! l# X, m9 `: G5 m# R
3 ?& P; I9 X. [% a$ |0 w8 a) ]! |
收藏 1 评论29 发布时间:2015-1-8 14:39

举报

29个回答
fengye5340 回答时间:2015-2-28 20:10:15
yinyue01 发表于 2015-2-17 13:49
6 K/ b) v' M+ iLABVIEW程序可以再优化一下,做成状态机,也可以加个消费者循环来存储和显示 ...

5 l( f: w, z1 V做成产品的话就要那样,需要花费时间精雕细刻,确保程序稳定性
fengye5340 回答时间:2015-1-9 13:07:12
pythonworld 发表于 2015-1-9 13:05
' g, g) e4 C: s) k上位机除了用labview,还能用什么软件?

5 @4 c" F& \- X/ A5 xVB VC++  delhpi  QT  C#.NET matlab等,你看喜欢哪个可以选择一个
沐紫 回答时间:2015-1-8 14:45:25
谢谢枫叶老师
boyubeiyu 回答时间:2015-1-8 14:54:02
向元老学习下Labview
mmo 回答时间:2015-1-8 15:48:25
好贴,顶一下
奔跑小蜗牛 回答时间:2015-1-8 15:52:55
这个不就是你的那套视频里的第八章吗?怎么单独拿出来了
fengye5340 回答时间:2015-1-8 21:28:54
奔跑小蜗牛 发表于 2015-1-8 15:528 _4 a: b; _' A2 B- J: S
这个不就是你的那套视频里的第八章吗?怎么单独拿出来了
  `  t# I! W) y: N, _% g4 y
分享给社区的更多人吧
wamcncn 回答时间:2015-1-8 21:45:45
学习了,元老级别的
fengye5340 回答时间:2015-1-9 09:10:47
wambob 发表于 2015-1-8 21:45
3 L" z0 A% Z/ ~7 q: h学习了,元老级别的

& e  R- Z  s1 p" I. Y感谢支持
pythonworld 回答时间:2015-1-9 13:05:23
上位机除了用labview,还能用什么软件?
大秦正声 回答时间:2015-1-9 13:22:09
很好!学习
天好蓝 回答时间:2015-2-10 21:48:10
stm32.jpg
_ilikerome_ 回答时间:2015-2-11 07:34:37
cool,labview有个比较恶心的地方就是要买板卡。
北斗光寒 回答时间:2015-2-11 09:22:04
学习labview  
fengye5340 回答时间:2015-2-11 21:18:54
_ilikerome_ 发表于 2015-2-11 07:34
+ m' h  n( d9 @/ y) \" _- }cool,labview有个比较恶心的地方就是要买板卡。
2 T' P0 {3 O9 ~/ h5 E9 P( ~+ j
可以不用买的,自己做个就可以,现在好多第三方支持,比如常见的研华数据采集卡等
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版