基于LabVIEW的STM32调试平台设计

发布者:GoldenDream最新更新时间:2019-11-11 来源: eepw关键字:LabVIEW  STM32  调试平台 手机看文章 扫描二维码
随时随地手机看文章

0引言

ARM处理器是Acorn计算机有限公司面向低预算市场设计的第一款RISC微处理器。ARM处理器具有耗电少功能强、1 6位/32位双指令集和合作伙伴众多等特点。本设计采用STM32F103ZET6芯片进行研究。此芯片采用ARM 32位的Cortex-M3 CPU作为内核,芯片带有2通道12位的D/A转换器,12通道DMA控制器能支持外设:定时器、ADC、DAC、USART等,具有112个快速IO端口。同时此芯片具有多达13个通信接口,其中包括USB2.0全速接口[1].

LabVIEW是一种程序开发环境,采用图标代替文本行创建应用程序的图形化编程语言。LabVIEW是一种图形化的编程语言的开发环境,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣[2-3].

由于STM32F103ZET6芯片功能强大,IO端口众多,为了方便在线对STM芯片IO端口,DAC、ADC功能以及PWM功能进行配置,本文利用LabVIEW8.6软件对STM32芯片进行了调试平台的设计。利用LabVIEW8.6软件进行调试平台的开发可以起到缩短开发周期,增强程序可读性和理解度以及界面更优美的优点。

1调试平台的总体构架

利用LabVIEW8.6软件设计的调试平台是按照下载到STM32F103ZET6芯片的程序进行设计。STM32芯片的内部程序已经对USB传输控制、IO端口的控制、AD数据采集、DA输出以及PWM输出都进行了定义。STM32系统利用自带的USB2.0通信接口与调试平台进行通信[4].调试平台主要由USB设备选择模块、IO端口控制模块、AD数据采集模块、DA输出模块以及PWM输出模块这五个部分组成,本平台的总体结构框图如图1所示。本文主要对调试平台中USB设备选择模块来进行研究和实现。

图1 调试平台的总体结构框图
图1 调试平台的总体结构框图

2 USB设备选择模块的设计
USB设备选择模块设计流程图

图2 USB设备选择模块设计流程图


调试平台与STM32F103ZET6之间是通过USB设备选择模块进行通信,STM32芯片内部已经通过程序对芯片的USB2.0接口进行了配置,USB设备选择模块通过调用VC编写的USB通信DLL(动态链接库)进行LabVIEW编程来完成调试平台与STM32芯片之间的通信。USB设备选择模块在整个调试平台中主要起到进行USB通信,监测插入STM32设备数量,选择插入STM32设备并且实时显示当前STM32设备使用状况的作用,此模块的设计流程框图如图2所示。USB设备选择模块通过LabVIEW8.6软件来进行设计,软件设计程序的时候分为前面板和后面板两部分,下面对此模块的前后面板设计进行具体的分析。

2.1前面板的设计

前面板是用来设计程序的显示界面的,此USB设备选择模块的前面板如图3所示。LabVIEW软件的前面板设计主要是针对VI的各种控制量和显示量的设计,基本包括了常用的各种控件。对面板的设计就如同搭积木一样简单——选择用户需要的控制量或显示量将它们放在适当的位置上再加上一些简单的图形及文字修饰就构成了与实际仪器类似的面板[ 5 ].通过图3可以看出通过调用控件面板中的列表框控件、字符串输入与字符串显示控件以及布尔控件,对它们的属性进行设置,然后进行布局即构成了USB设备选择模块的前面板。

左边那个列表框控件用来显示当前连接设备列表,当只连接一个STM32设备时,此框会出现设备0字样,如果再连接一个STM32设备,此框接在下面会出现一个设备1字样,随着连接STM32设备的多少,列表框中会依次出现相应的设备序列号。通过对列表框中设备序列号的选取,可以对相应的STM32设备进行在线配置和控制。比如:当点击设备0时,右边设备ID中会显示出设备0的ID号,根据STM32设备与调试平台是否连接,设备连接状态栏会显示出已经连接设备一个或者当前没有连接设备,同时当前使用连接设备栏也会相应的显示设备0已打开,设备ID号×或者当前没有使用设备。同时通过配置新I D号控件可以对连接的STM32设备的ID号进行更改,通过关闭USB控件可以随时断开相应STM32设备与调试平台之间的连接。


USB设备选择模块的前面板
图3 USB设备选择模块的前面板


2.2 后面板设计

后面板是用来进行程序设计的,通过后面板的图形化程序的运行来控制前面板控件以及前面板与STM32 设备之间的操作。后面板图形化程序框图主要通过调用V C 编写的USB 通信DLL 配合后面板函数选板中编程函数中的相关函数以及前面板控件创建的属性节点进行实现[ 6 ] 。USB通信DLL 中包括16个函数,此USB 设备选择模块中要用到获取当前连接的设备数目函数、打开设备函数、关闭设备函数、配置地址函数以及获取设备的序列号函数这5 个函数。LabVIEW 软件中程序的运行是采用多线程数据流的模式,根据USB 设备选择模块的设计流程本图形程序框图被设计成两个模块,一个用于统计连接的STM32 设备数目,一个用于对选定的STM32 设备进行操作。这两个模块是同时运行的。


显示插入STM32设备的程序框图

图4 显示插入STM32设备的程序框图


统计连接STM32设备数目模块程序需先从函数选板中选取一个while循环结构,三重条件结构来构成此模块的大框架,整体程序中最主要的是如何在列表框中显示插入的STM32设备。为了实现这个功能本程序做了如下设计。首先选取函数选板互连接口中的调用库函数节点,双击此函数节点,在库名或路径中调用USB通信DLL文件,接着在函数名中选择获取当前连接的设备数目函数,然后在参数选项中添加变量名并设定其参数类型,这样就完成了获取当前连接的设备数目函数的调用。此函数能检测到插入电脑USB口的STM32设备的个数,设备检测到之后还要让它按照插入的先后顺序显示在列表框中,在这里通过一个条件结构来完成。首先将获取当前连接的设备数目函数与一个等于0的比较函数进行比较,如果等于0即为真,此时执行没有连接设备的程序,如果不为0即为假,此时执行在列表框中按照顺序显示设备0、设备1??设备N - 1的程序。

列表框中显示插入STM32设备的程序框图如图4所示。通过对程序的设计和优化可以得到统计连接STM32设备数目模块程序的程序框图如图5所示。

统计连接STM32设备数目模块程序图

图5 统计连接STM32设备数目模块程序图


对选定的设备进行操作程序框图

图6 对选定的设备进行操作程序框图

对选定的STM32设备进行操作程序通过调用USB通信DLL文件中打开设备函数、关闭设备函数、配置地址函数以及获取设备的序列号函数来进行设计。此程序运用了事件结构,通过设置显示设备列表信息、配置新ID号、打开USB以及关闭USB事件以达到整体功能实现的效果,此程序的设计框图如图6所示。

3结束语

综上所述应用LabVIEW软件设计虚拟仪器设备具有低成本、高效率和高灵活性的特点可以很好的实现远程控制和信息资源的共享。基于LabVIEW8.6设计出来的调试平台,其框图程序的可读性较强,界面友好,操作较方便。测试结果表明,该设计方案响应速度快,此调试平台和STM32为主控件的设备已经应用于工业控制当中,运行良好。


关键字:LabVIEW  STM32  调试平台 引用地址:基于LabVIEW的STM32调试平台设计

上一篇:基于LabVIEW的虚拟示波器设计
下一篇:LabVIEW与单片机串口在数据采集系统中的应用

推荐阅读最新更新时间:2024-11-08 11:36

意法半导体STM32 USB PD MCU 现支持 UCSI 规范,加快Type-C供电广泛应用
2023 年 7 月 24 日,中国 —— 意法半导体STM32 微控制器 (MCU)软件生态系统 STM32Cube新增一个USB Type-C® 连接器系统接口(UCSI)软件库,加快USB-C供电(PD)应用的开发。 X-CUBE-UCSI是一款UCSI 认证的总包整体方案,组件包含即用型硬件和使用STM32 MCU充当UCSI PD控制器实现标准化通信的固件示例。 客户可以直接复制粘贴这些参考设计,并从优化的物料清单(BoM)成本中受益。 该软件允许 MCU 连接系统主处理器,使用 UCSI 协议与操作系统交换信息,同时控制 USB-C 连接和 PD 协议。主处理器可以是系统芯片(SoC)、应用处理器或 S
[单片机]
意法半导体<font color='red'>STM32</font> USB PD MCU 现支持 UCSI 规范,加快Type-C供电广泛应用
STM32看门狗WWDG和IWDG的区别是什么
STM32有2个看门狗:独立看门狗和窗口看门狗。 独立看门狗IWDG:独立于系统之外,因为有独立时钟,所以不受系统影响的系统故障探测器,主要用于监视硬件错误。 窗口看门狗WWDG:系统内部的故障探测器,时钟与系统相同。如果系统时钟不走了,这个狗也就失去了作用了,主要用于监视软件错误。 简单的讲,看门狗就是检测系统故障的,如果因为系统故障而没有及时喂狗,则引发复位重启。 对于一般的独立看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但是这样有一个隐患,有可能程序跑乱了又跑回正常的地方,或者跑乱的程序正好执行了刷新看门狗操作,这样的情况下一按的看门狗就检测不出来故障了;但是如果使用窗口看门狗,程序员可以根据程序正常执行
[单片机]
<font color='red'>STM32</font>看门狗WWDG和IWDG的区别是什么
STM32学习之传感器篇——DHT11温湿度传感器
1、DHT11传感器简介 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性和卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式存在OTP内存中,传感器内部在检测型号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,使其成为该类应用甚至最为苛刻的应用场合的最佳选择。产品为4针单排引脚封装,连接方便。
[单片机]
<font color='red'>STM32</font>学习之传感器篇——DHT11温湿度传感器
STM32程序编写基本流程(LED流水灯)
LED流水灯程序初始化流程 //1.定义结构体变量 GPIO_InitTypeDef GPIO_InitStructure; //2.开启GPIOC的外部时钟,不同的外设开启不同的时钟,IO口复用时两个时钟都要开启。stmf10x_rcc.h RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //3.设置要控制的GPIO管脚 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; //4.设置管脚模式,推挽输出 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_
[单片机]
stm32单片机5v电压怎么提供
STM32单片机一般需要供电电压为3.3V,但也有一些型号的单片机可以工作在5V电压下。在供电电压方面,有几种方法可以为STM32单片机提供5V电压:使用外部稳压器、使用开发板自带的5V引脚、通过USB线提供电源、或者使用外部电源模块。 使用外部稳压器: 使用外部稳压器是最常见的方式之一,可以稳定地提供5V电压给STM32单片机。具体步骤如下: 选择一个合适的外部稳压器,推荐使用L7805。 连接稳压器的输入引脚到正电源(通常是9V或12V电源)。 连接稳压器的地引脚到电源的负极,同时连接单片机的地引脚到稳压器的地引脚。 连接稳压器的输出引脚到单片机的5V引脚。 使用开发板自带的5V引脚: 一些开发板自带有额外的5
[单片机]
STM32自学-初学者--谨记-编译时连接不到“stm32f10x_conf.h”
STM32自学-初学者的前车之鉴,希望可以帮到后面的同学。 因为一个小小的设置问题—C/C++没设置好而编译出错,导致一个下午都在忙着解决, 这或许就是自学者的烦恼吧,不能做到面面俱到,导致时间白白浪费在一些不该发生的事上, 希望我的这次总结可以有所帮助。 USE_STDPERIPH_DRIVER, STM32F10X_HD  编译出错  编译成功
[单片机]
<font color='red'>STM32</font>自学-初学者--谨记-编译时连接不到“stm32f10x_conf.h”
一图搞懂单片机STM32的5个时钟源知识!
众所周知STM32有5个时钟源HSI、HSE、LSI、LSE、PLL,其实他只有四个,因为从上图中可以看到PLL都是由HSI或HSE提供的。 其中,高速时钟(HSE和HSI)提供给芯片主体的主时钟.低速时钟(LSE和LSI)只是提供给芯片中的RTC(实时时钟)及独立看门狗使用,图中可以看出高速时钟也可以提供给RTC。 内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号. 高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们
[单片机]
STM32流水灯实验编程
首先,在上一节的模板基础上建立一个新的Keil工程,取名为LED。打开main.c函数,可以直接在这里写代码,当然也可以重新建立.c文件,这里我们直接在main文件中写程序。第一步,也是最重要的一步就是配置作为输出的IO口,代码如下: GPIO_InitTypeDef GPIO_Structure; //定义GPIO结构体 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,ENABLE); //使能PEIO口的时钟 GPIO_Structure.GPIO_Pin = GPIO_Pin_9; //结构体引脚为PE9 GPIO_Structure.GPIO_Mode = GPIO_
[单片机]
<font color='red'>STM32</font>流水灯实验编程
小广播
最新测试测量文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved