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

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

[复制链接]
fengye5340 发布时间:2015-1-8 14:39
本帖最后由 fengye5340 于 2015-1-8 14:44 编辑

      LabVIEW是一种程序开发环境,由美国国家仪器(NI)公司研制开发,类似于C和BASIC开发环境,但是LabVIEW与其他计算机语言的显著区别是:其他计算机语言都是采用基于文本的语言产生代码,而LabVIEW使用的是图形化编辑语言G编写程序,产生的程序是框图的形式。 LabVIEW软件是NI设计平台的核心,也是开发测量或控制系统的理想选择。LabVIEW开发环境集成了工程师和科学家快速构建各种应用所需的所有工具,旨在帮助工程师和科学家解决问题、提高生产力和不断创新。
这 一篇文章讲解一下利用Labview软件实现和STM32-NUCLEO-072RB开发平台的通信,并实现一个简易数据采集系统。文章第一部分讲解 labview串口通信VI函数的实现。第二部分讲解一下STM32F0 ADC模块和库函数介绍,第三部分讲解一下MCU端代码软件的实现。
一、labview串口通信VI函数
要想实现一个完整的MCU和PC端Labview的软件串口通信,必须要打通一个串口的“通道”!也就是:
下位机:也就是MCU程序中要实现串口收发的底层驱动
中间通信线:提供了一个MCU串口到电脑串口的硬件连接:3条线
上位机:labview软件开发串口通信程序
labview 里面实现串口通信有两种方法:一种是采用软件自带的VISA串口通信VI函数实现,另外一种是借助MSComm控件实现。第一种方法简单易用,便于快速掌握,第二种控制支持查询和事件驱动,功能好用,可以支持像 VB/VC++/delhpi这样的开发环境中使用!
Labview软件的控件在labview软件的如下位置:
1.jpg

labview串口函数内容:
2.jpg

有了这些函数,实现串口VI就不难了,下面是一个串口VI的后面板程序图:
3.jpg

通过串口接收到非空字符后,将2个8位数据合成一个16位数据,然后将放大后的整数除以1000倍,送到波形图中显示出来,在循环里面没有增加延时,这样会占用计算机内存较多。
二、STM32F0的ADC模块及库函数STM32F0ADC特性
1、12位精度下转换速度可高达1MHz
2、可配置的转换精度:6位,8位,10位,12位
3、转换电压范围:0 ~ 3.6V,VSSA ~ VDDA
4、供电范围:2.4V ~ 3.6V
5、19个转换通道,其中16个外部通道和3个内部通道(温度传感器内部电压参考§电池供电监测)
6、采样时间可配置
7、ADC模块自校准
8、扫描方向可配置
9、专用14MHZRC时钟或者内部时钟分频
10、多种转换模式:单通道单次,单通道连续,多通道单次,多通道连续、间隔
11、数据存放对齐方式可配置:左对齐,右对齐
12、启动转换方式可配置:软件触发,硬件触发
13、可设置上下门限的模拟看门狗
14、DMA功能
15、自动延迟转换模式
16、自动节电模式
17、多种中断源:(ADC模块就绪、转换结束、转换序列结束、采样阶段结束、模拟看门狗报警、溢出错误 )
STM32F0ADC采集通道引脚
4.jpg

这里用的是PB1通道
5.jpg

STM32F0ADC部分库函数介绍ADC结构体定义ADC_InitTypeDef
6.jpg
7.jpg
8.jpg

例程用到的ADC库函数
ADC_Init();
ADC_StructInit();
ADC_Cmd();
ADC_ChannelConfig();
ADC_GetCalibrationFactor();
ADC_DMACmd();
ADC_StartOfConversion();
ADC_GetITStatus();
DMA_Init();
DMA_ITConfig();
DMA_Cmd();
ADC_DMARequestModeConfig()
DMA_GetFlagStatus()/DMA_ClearFlag 有了这些代码,看一下具体的代码实现:
三、DMA方式下单通道数据采集代码实现1、Keil-mdk工程模板中加入ADC.C文件, 在includes.h文件中加入ADC.H头文件

9.jpg


2、在ADC.H头文件宏定义
10.jpg

3、采用DMA方式的ADC_DMA_Init()代码实现
11.jpg
12.jpg

4、向labview发送2个字符函数ADC_Value_Send()实现
    13.jpg

5、DMA中断优先级及服务函数实现
14.jpg

6、main.c函数代码实现
15.jpg

7、实验现象硬件连线图:
16.jpg

Labviewvi运行界面
17.jpg



代码地址链接http://www.eeboard.com/bbs/thread-39696-1-1.html
摩尔吧视频地址链接
https://www.moore8.com/courses/306









收藏 1 评论29 发布时间:2015-1-8 14:39

举报

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

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

VB 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:52
这个不就是你的那套视频里的第八章吗?怎么单独拿出来了

分享给社区的更多人吧
wamcncn 回答时间:2015-1-8 21:45:45
学习了,元老级别的
fengye5340 回答时间:2015-1-9 09:10:47
wambob 发表于 2015-1-8 21:45
学习了,元老级别的

感谢支持
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
cool,labview有个比较恶心的地方就是要买板卡。

可以不用买的,自己做个就可以,现在好多第三方支持,比如常见的研华数据采集卡等
12下一页

所属标签

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