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

基于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程序可以再优化一下,做成状态机,也可以加个消费者循环来存储和显示 ...

做成产品的话就要那样,需要花费时间精雕细刻,确保程序稳定性
沐紫 回答时间: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
这个不就是你的那套视频里的第八章吗?怎么单独拿出来了

分享给社区的更多人吧
wambob 回答时间: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,还能用什么软件?
fengye5340 回答时间:2015-1-9 13:07:12
pythonworld 发表于 2015-1-9 13:05
上位机除了用labview,还能用什么软件?

VB VC++  delhpi  QT  C#.NET matlab等,你看喜欢哪个可以选择一个
123下一页

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

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