
【黄金搭档mbed+labview】初体验* q$ y/ c A; H, S( @ Nucleo+Mbed +labview 小试牛刀之-模拟量读取 并解决驱动问题 4 o3 U' s8 F- {" L3 O2 u3 Z* b 本实验前提是安装了nucleo的三合一驱动:mass storage/ usb vcp/usb debug 首先安装labview,本人是NI LabVIEW 2016 (64-bit) 再安装针对labview的设备驱动,我选的是NI VISA16.00full 有了它labview才能识别各种数据采集设备的端口' y% Q. k* R2 L4 N3 ]% n 安装之后 原nucleo三合一驱动会被ni VISA驱动代替,显示三个stlink设备8 e4 R3 Z3 U2 }' I: ` 导致原有的stlink不能使用,MDK,AIR等软件都不能识别,也不能下载程序7 _2 k4 r5 N" d" c _ 解决办法就是将VISA驱动删掉,再重装一遍,我装的是STSW_LINK009_V1.01 通过usb 的虚拟串口向labview传输数据; g- I" _" t, C% ^% Q, o* J9 x //另外CP2102 usb转TTL也可以顺利被labview识别, ![]() 然后就可以正常使用mbed+labview编程了, 代码如下: #include "mbed.h" DigitalOut myled(LED1); AnalogIn ain(A3); int main() { float ADCdata;4 X! `1 y6 ~/ s. z' { while (1) {5 |) T1 t6 q, a, u for (int i=0;i<=9;i++) { ?# d7 v4 g- d M( ~ ADCdata=ADCdata+ain.read(); } ADCdata=ADCdata/10; printf("%f\n", ADCdata);0 l7 j+ f" U4 k' v5 T% R( u* \ myled = !myled;$ T. A1 V8 s/ G# N# Q* ` wait(0.01);, z" Z% w3 ~" Z9 h6 v/ j }; D% K0 H( \7 ^; w0 v }) R! h, L1 n7 H) Z" C3 w$ Z, I 这个例子源于mbed上的Cookbook,% ^: }' ]# C5 W( t 通过一个电位器输入0v~3.3v电压到nucleo的 A3口,# e! C1 ?& Z4 u6 h2 g, k& o 经过nucleo采集输出0~1的数字量到labview以波形图连续显示和数字表盘瞬时值显示1 n) C) E$ }+ x+ o8 Z4 | stm32程序本人加了for循环求平均值,防止采集的数据跳变 labview程序前面板可以选择串口,然后运行开始采集电压值 ![]() labview程序数据流表示:在while循环内通过mbed read函数读取串口, 然后输出到波形图和数字仪表控件 通过stop布尔值控制退出while循环 ![]() ![]() 提示:本人AMD的cpu,labview连接mbed采集几分钟之后,电脑会出现蓝屏显示 usb错误,希望坛友积极反馈遇到的其他问题。& l. @' g. B! w. n @# @! J# @) V" ~0 Q |
# V4 f0 Q( T, T
沙发自己占,
labview的VI库插件
参照本人上一贴8 f/ E7 J8 _" B8 B" S$ k
0 H# ?2 o' p$ c
本实验VI+ \( ?% j* \' l: E/ q+ L8 t' c
. {; K4 d, ]: ]; ~
% a) y4 @& N2 p
]2 _! d) |$ q& v: q9 [+ }