版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章软件开发环境开发环境概述12CubeMX工具3CubeIDE4Keil(MDK-ARM)5IAREWARMIDE6MotorControlWorkbench7STMStudio前言本书中主要用的软件开发工具有:MotorControlWorkbench(MCSDK)、STM32CubeMX、STM32CubeIDE、Keil等,其软件生态系统如图3-1所示。图3-1STM32G4软件生态系统组成前言一般的工程代码生成流程如图3-2所示,MotorControlWorkbench主要用来创建工程,STM32CubeMX主要是用于配置及初始化代码的生成,解决资源配置的冲突问题,STM32提供的免费集成开发环境CubeIDE或者第三方IDEMDKKeil用于代码的调试编译与下载。图3-2STM32电机控制SDK工作流开发环境概述01开发环境概述开发环境描述CubeMXSTM32CubeMX是针对STM32系列微控制器的可视化配置工具,通过分步过程可以非常轻松地配置STM32微控制器和微处理器,以及为ARMCortex-M内核或面向ARMCortex-A内核的特定Linux设备树生成相应的初始化C代码,它的主要功能有:管脚配置、时钟配置、中断配置、片上外设配置、生成初始代码等。CubeIDESTM32CubeIDE是针对STM32系列微控制器的集成开发环境,具有STM32微控制器和微处理器的外设配置、代码生成、代码编译和调试功能。STM32CubeIDE可以帮助用户编译调试代码,包括STM32CubeMX生成的项目代码,也同时集成了STM32CubeMX工具。KeilKeil是KeilSoftware公司开发的微控制器软件开发平台,是目前ARM内核单片机开发的主流工具。提供了包括C编译、宏汇编、链接器、库管理和一个功能强大的仿真调试器在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。其中MDK-ARM是Keil公司开发的基于ARM核的系列微控制器的嵌入式应用程序。IAREWARMIDEEmbeddedWorkbenchforARM是IARSystems公司为ARM微处理器开发的一个集成开发环境(IAREWARM)。同其他的ARM开发环境相比,IAREWARM具有入门容易、使用方便和代码紧凑等特点。EWARM中包含一个全软件的模拟程序,用户不需要任何硬件支持就可以模拟各种ARM内核、外部设备甚至中断的软件运行环境。MotorControlWorkbench(MCSDK)MotorControlWorkbench(MCSDK)是STM32电机控制工作台,它可以减少STM32PMSMFOC固件配置所需的设计工作和时间。用户通过GUI生成项目文件,并根据应用程序的需要初始化库,可以使用该软件针对电机进行调速、参数设置、在线调试、波形观测、快速实现对电机的控制:包括有感/无感、方波控制和FOC控制。MotorProfiler是用来对电机参数实现快速测试的工具,集成在MotorControlWorkbench中。STMStudioSTMStudio是STM32的一款小巧的图形化数据监测软件,通过实时读取和显示变量来帮助调试和诊断STM32应用程序,通过标准的ST-LINK开发工具与STM32连接。STMStudio是一种非侵入式工具,可以保留应用程序的实时行为,它非常适合调试无法停止的应用,例如电机控制应用。CubeMX工具022.1
下载与安装2.2工具界面2.1下载与安装①参考视频:《STM32新手入门-工具安装》打开“电堂科技”官网主页—>在“厂商专区”菜单下选择“ST”—>在搜索框中输入“STM32新手入门-工具安装”并搜索,可以检索到参考视频。①打开ST官网主页,在“Tools&Software”类别下搜索“STM32CubeMX”,将检索结果页面下拉至如图3-3所示的“获取软件”位置(请注意将语言切换成中文),根据自己的电脑系统点击对应的“Getlatest”进行下载,此处以6.5.0版本为例说明其安装过程。图3-3STM32CubeMX软件下载页面2.1下载与安装②②点击“接受”许可协议之后,进入如图3-4所示的获取软件窗口。在“获取软件”窗口输入邮件地址,勾选同意隐私声明,点击“下载”按钮,弹出如图3-5所示窗口时表示提交成功。图3-4获取软件页面图3-5注册MyST成功2.1下载与安装③③进入邮箱中查看收到的反馈邮件,如图3-6所示,点击“立即下载”按钮,会直接跳转到ST的网站,稍等片刻之后会开始自动下载。图3-6下载STM32CubeMX2.1下载与安装④④下载完成后进行解压,建议解压到英文目录下,不要含有中文,然后双击“SetupSTM32CubeMX-6.5.0-Win.exe”文件进行安装,如果弹出窗口提示安装JAVA,按照操作进行即可。进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-7至3-15所示。图3-7STM32CubeMX安装过程(1)图3-8STM32CubeMX安装过程(2)2.1下载与安装④④下载完成后进行解压,建议解压到英文目录下,不要含有中文,然后双击“SetupSTM32CubeMX-6.5.0-Win.exe”文件进行安装,如果弹出窗口提示安装JAVA,按照操作进行即可。进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-7至3-15所示。图3-9STM32CubeMX安装过程(3)图3-10STM32CubeMX安装过程(4)2.1下载与安装④④下载完成后进行解压,建议解压到英文目录下,不要含有中文,然后双击“SetupSTM32CubeMX-6.5.0-Win.exe”文件进行安装,如果弹出窗口提示安装JAVA,按照操作进行即可。进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-7至3-15所示。图3-11STM32CubeMX安装过程(5)图3-12STM32CubeMX安装过程(6)2.1下载与安装④④下载完成后进行解压,建议解压到英文目录下,不要含有中文,然后双击“SetupSTM32CubeMX-6.5.0-Win.exe”文件进行安装,如果弹出窗口提示安装JAVA,按照操作进行即可。进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-7至3-15所示。图3-13STM32CubeMX安装过程(7)图3-14STM32CubeMX安装过程(8)2.1下载与安装⑤⑤安装完成后,可以打开如图3-15所示的软件主界面。图3-15STM32CubeMX安装成功后运行的主界面2.2工具界面打开STM32CubeMX之后,主界面的各个功能的分区如下:①菜单栏中“File”用于工程文件的管理,“Window”用于切换软件的视图效果,“Help”用于寻找软件使用指南,检查更新或固件包的安装等功能。②“ExistingProjects”展示了近期的工程文件,方便快捷打开,一般利用MotorControlWorkbench生成的工程文件可以直接打开。③“NewProject”,除了打开MCSDK生成的工程文件,也可以通过选择开发板自行创建新的工程文件。④“Managesoftwareinstallations”主要用于检查STM32CubeMX的更新以及固件包的下载与安装。图3-16STM32CubeMX主界面功能分区2.2工具界面如果要创建新工程,可以点击NewProject下的AccessToMCUSelector,之后可以看到如图3.2-15所示的MCU选择界面。图3-17STM32CubeMXMCU/MPU选择界面2.2工具界面以本书中的套件为例,在PartNumberSearch栏中输入STM32G431RB后双击选择STM32G431RBTx即可选中本书中的开发板,进入如图3.2-16所示的配置界面。图3-18STM32CubeMX配置界面CubeIDE033.1
下载和安装3.2工具界面3.1下载和安装①①与CubeMX下载流程类似,打开ST官网主页,在Tools&Software类别下搜索STM32CubeIDE,将检索结果页面下拉至如图3-19所示的“获取软件”位置(请注意将语言切换成中文),根据自己的电脑系统点击对应的“Getlatest”进行下载,此处以1.9.0版本为例说明其安装过程。图3-19STM32CubeIDE软件下载页面参考视频:《STM32新手入门-工具安装》打开“电堂科技”官网主页—>在“厂商专区”菜单下选择“ST”—>在搜索框中输入“STM32新手入门-工具安装”并搜索,可以检索到参考视频。3.1下载和安装②、③②点击“接受”许可协议之后,(请注意先登录或者注册ST账号),进行下载。③下载完成后进行解压,安装时注意安装目录必须是英文的,否则会报“Errorlaunchinginstaller”错误。然后双击“st-stm32cubeide_1.9.0_12015_20220302_0855_x86_64.exe”文件进行安装,进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-20至3-25所示。图3-20STM32CubeIDE安装过程(1)3.1下载和安装③图3-21STM32CubeIDE安装过程(2)图3-22STM32CubeIDE安装过程(3)3.1下载和安装③图3-23STM32CubeIDE安装过程(4)图3-24STM32CubeIDE安装过程(5)3.1下载和安装④④安装完成后,可以打开如图3-25所示的软件主界面。图3-25STM32CubeIDE安装成功运行后的主界面3.2工具界面打开CubeIDE之后,主界面的各个功能的分区如图3-26所示图3-26STM32CubeIDE主界面功能分区3.2工具界面打开STM32CubeMX生成的工程文件界面如图3-27所示:图3-27STM32CubeIDE工程文件界面功能分区Keil(MDK-ARM)044.1
下载和安装4.2操作简介4.1下载和安装①①打开KEIL官网主页—>在“Download”菜单下点击“ProductDownloads”—>点击“MDK-ARM”,第一次打开该网址的时候进入如图3-28所示页面,需要输入联系信息。图3-28MDK-ARM下载信息输入页面参考视频:《STM32新手入门-工具安装》打开“电堂科技”官网主页—>在“厂商专区”菜单下选择“ST”—>在搜索框中输入“STM32新手入门-工具安装”并搜索,可以检索到参考视频。4.1下载和安装②②点击“Submit”按钮后,进入如图3-29所示页面,点击“MDK536.exe”进行下载。图3-29MDK-ARM下载页面4.1下载和安装③③下载完成后双击“MDK536.EXE”进行安装,进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-30至3-34所示。图3-30MDK-ARM安装过程(1)4.1下载和安装③图3-31MDK-ARM安装过程(2)图3-32MDK-ARM安装过程(3)4.1下载和安装③图3-33MDK-ARM安装过程(4)图3-34MDK-ARM安装过程(5)4.1下载和安装④④安装完成后,可以打开如图3-35所示的软件主界面。图3-35MDK-ARM安装成功运行后的主界面4.2操作简介进入Keil后,打开STM32CubeMX生成的工程文件,界面如图3-36所示:图3-36MDK-ARM主界面功能分区4.2固件包的安装①①在Keil内选择直接安装:点击图3-36所示的固件包安装按钮,打开如图3-37所示的固件包安装界面。点击选择左侧框选的“STM32G4Series”开发板,然后选择右侧框选的STM32G4xx_DFP的固件包下载后进行安装或更新。图3-37固件包安装界面4.2固件包的安装②②首次安装会进入如图3-38所示的固件包下载界面,选择“STMicroelectronicsSTM32G4SeriesDeviceSupport,DriversandExamples”,点击下载箭头按钮后进行下载。图3-38固件包下载界面4.2固件包的安装③③如图3-39所示,点击固件包安装窗口菜单栏的“File”后再点击“Import”将下载的固件包导入,或者直接点击固件包进行安装。图3-39固件包导入界面IAREWARMIDE055.1
下载和安装5.2操作简介5.1下载与安装①①打开IAR官网主页—>在“PRODUCTS”菜单下点击“TrySoftware”,进入如图3-40所示页面,选择“IAREmbeddedWorkbenchforArm”,点击“Registeranddownload”,进入如图3-41所示页面。图3-40IAR试用版软件下载页面图3-41IAREmbededWorkbenchforARM下载页面5.1下载和安装②②点击“Download”进入如图3-42所示注册页面,填写带“*”信息并提交。图3-42IAR试用版注册页面5.1下载和安装③③网站会发送一封确认注册邮件到填写的邮箱,如图3-43所示。点击邮箱中的链接,进入如图3-44所示的注册确认页面。图3-43IAR注册确认邮件发送页面图3-44IAR注册确认页面5.1下载与安装④④点击“Downloadsoftware”下载,下载完成后双击“EWARM-9204-47112.exe”进行安装,具体安装过程如图3-45至3-51所示。图3-45IAREmbeddedWorkbenchforArm安装过程(1)图3-46IAREmbeddedWorkbenchforArm安装过程(2)5.1下载与安装④④点击“Downloadsoftware”下载,下载完成后双击“EWARM-9204-47112.exe”进行安装,具体安装过程如图3-45至3-51所示。图3-47IAREmbeddedWorkbenchforArm安装过程(3)图3-48IAREmbeddedWorkbenchforArm安装过程(4)5.1下载与安装④④点击“Downloadsoftware”下载,下载完成后双击“EWARM-9204-47112.exe”进行安装,具体安装过程如图3-45至3-51所示。图3-49IAREmbeddedWorkbenchforArm安装过程(5)图3-50IAREmbeddedWorkbenchforArm安装过程(6)5.1下载与安装④④点击“Downloadsoftware”下载,下载完成后双击“EWARM-9204-47112.exe”进行安装,具体安装过程如图3-45至3-51所示。图3-51IAREmbeddedWorkbenchforArm安装过程(7)5.1下载和安装⑤⑤安装完成后,可以打开如图3-52所示的软件主界面。图3-52IAREmbeddedWorkbenchIDE安装成功运行后的主界面5.1下载和安装⑥⑥点击“Help”菜单下的“LicenseManager”,打开IARLicenseManager界面,如图3-53所示。图3-53IARLicenseManager界面5.1下载与安装⑦⑦点击“License”菜单下的“ActivateLicense…”,打开激活向导,选择在线激活,输入注册确认邮件中收到的LicenseNumber,逐步完成软件激活。激活过程如图3-54至3-57所示。图3-54IAR激活过程(1)图3-55IAR激活过程(2)5.1下载与安装⑦图3-56IAR激活过程(3)图3-57IAR激活过程(4)⑦点击“License”菜单下的“ActivateLicense…”,打开激活向导,选择在线激活,输入注册确认邮件中收到的LicenseNumber,逐步完成软件激活。激活过程如图3-54至3-57所示。5.2操作简介进入IAREmbededWorkbenchIDE后,如图3-58所示,点击“File”菜单下的“OpenWorkspace”。图3-58打开工作空间5.2操作简介如图3-59所示,打开STM32CubeMX生成的工程文件,此处以6S_IHM16_SL_VM为例,IAREmbeddedWorkbenchIDE主界面功能分区如图3-60所示。图3-59打开STM32CubeMX生成的工程文件图3-60IAREmbeddedWorkbenchIDE主界面功能分区MotorControlWorkbench(MCSDK)066.1
下载和安装6.2操作简介6.3使用STMotorProfiler获得电机参数6.4STMCSDK5.x固件介绍6.1下载和安装①①打开ST官网主页—>在Tools&Software菜单下选择Ecosystems—>选择STM32EcosystemforMotorControl—>选择EmbeddedSoftware—>X-CUBE-MCSDK—>GetSoftware,将页面下拉至如图3-61所示的“获取软件”位置(请注意将语言切换成中文),选择对应版本进行下载。此处以5.4.8版本为例说明其安装过程。图3-61X-CUBE-MCSDK软件下载页面6.1下载和安装②、③②点击“接受”许可协议(请注意先登录或者注册ST账号),进行下载。③下载完成后进行解压,然后双击“X-CUBE-MCSDK_5.4.8.exe”文件进行安装,进入安装流程后,根据提示逐步完成安装,注意在安装的路径中不要有中文,建议不要安装在系统盘,具体安装过程如图3-62至3-65所示。图3-62MCSDK安装过程(1)图3-63MCSDK安装过程(2)6.1下载和安装②、③图3-64MCSDK安装过程(3)图3-65MCSDK安装过程(4)②点击“接受”许可协议(请注意先登录或者注册ST账号),进行下载。③下载完成后进行解压,然后双击“X-CUBE-MCSDK_5.4.8.exe”文件进行安装,进入安装流程后,根据提示逐步完成安装,注意在安装的路径中不要有中文,建议不要安装在系统盘,具体安装过程如图3-62至3-65所示。6.1下载和安装④④安装完成后,可以打开如图3-66所示的软件主界面。图3-66MCSDK安装成功运行后的主界面6.2操作简介如图3-67所示,“用户按钮区”用于创建新项目,加载已有项目或者启动ST电机参数测量工具,“最近项目区”用于加载近期的项目,“例程区”用于加载项目示例。图3-67STMotorControlWorkbench主界面功能分区参考视频:《STM32新手入门-工具安装》打开“电堂科技”官网主页—>在“厂商专区”菜单下选择“ST”—>在搜索框中输入“MCSDK5.x软件介绍【上】”并搜索,可以检索到参考视频。6.2操作简介图3-68新建工程方法1图3-69新建工程方法2①创建新项目以本书使用的P-NUCLEO-IHM03套件为例,有两种途径可以选择对应的硬件。第1种方法如图3-68所示,在“SelectBoards”选项中点选“MCKit”,在“MotorControlKit”下拉框中选择“NUCLEO-IHM033sh”即可。第2种方法如图3-69所示,在“SelectBoards”选项中点选“Power&Control”,然后分别在“Control”下拉框中选择“Nucleo-G431RB”,在“Power”下拉框中选择“X-NUCLEO-IHM16M1”,在“Motor”下拉框中选择“GBM2804H-100T”即可。6.2操作简介②硬件配置:硬件配置窗口如图3-70所示,主要包括图标与菜单区、当前硬件信息显示、硬件细节设定、主要硬件配置信息和用户信息。图3-70硬件配置窗口6.2操作简介如图3-71所示,按钮1用于打开电机监测界面,按钮2用于连接电机(图中电机尚未连接),按钮3用于打开如图3-72所示的示波器窗口。图3-71电机监测界面图3-72示波器窗口6.2操作简介③工程生成:点击图3-73中的“Projectgeneration”按钮可以选择合适的IDE自动生成代码并在CubeMX中打开进行下一步配置工作,具体操作流程将在7.1电机快速控制实例中展示。图3-73代码生成窗口6.3使用STMotorProfiler获得电机参数如图3-74所示,在Workbench中点击“MotorProfiler”,进行参数的测量,操作步骤如下:图3-74Workbench中集成的MotorProfiler工具6.3使用STMotorProfiler获得电机参数(1)(1)选择开发板:如图3-75所示,点击“SelectBoards”选择开发板,打开套件选择窗口,选择如图3-76所示的P-NUCLEO-IHM03套件,该套件由NUCLEO-G431RB和X-NUCLEO-IHM16M1两块板子组成。图3-75选择开发板6.3使用STMotorProfiler获得电机参数(1)如果是第一次使用,可以点击图3-77中方框内“RemembertoproperlyconfiguretheboardsinMotorControlmode”的链接,对板子需要进行安装的线帽进行检查。图3-76选择P-NUCLEO-IHM03套件图3-77板子配置检查6.3使用STMotorProfiler获得电机参数(2)(2)填写电机的参数:如图3-78所示填写电机参数,根据厂家提供的信息填写电机的相关参数,有助于缩短测量准确数值的时间。其中,电机的极对数、磁体的内置类型是必须要进行填写的,在ST官网中可以找到相关数据,本书使用的电机极对数为7,为表贴式电机(SM-PMSM)。图3-78填写电机参数6.3使用STMotorProfiler获得电机参数(3)(3)连接开发板与软件点击图3-79中的“Connect…”进行连接。第一次连接成功会显示如图3-80所示的状态窗口。图3-79连接开发板图3-80连接成功的状态窗口6.3使用STMotorProfiler获得电机参数(3)第一次连接成功会显示状态窗口,如有其他提示,则根据提示内容检查相关问题,常见问题如下:①检测不到ST-LINK②检测不到串口6.3使用STMotorProfiler获得电机参数(3)第一次连接成功会显示状态窗口,如有其他提示,则根据提示内容检查相关问题,常见问题如下:③要连接的板子和所选的不同④STLINK安装的固件版本需要更新6.3使用STMotorProfiler获得电机参数(3)第一次连接成功会显示状态窗口,如有其他提示,则根据提示内容检查相关问题,常见问题如下:⑤测量期间电机负载改变太快⑥测量阶段时间过长6.3使用STMotorProfiler获得电机参数(4)(4)测量参数连接成功后,点击图3-81中的“StartProfiler”开始进行电机参数测量。测量过程如图3-82所示。图3-81开始测量图3-82测量过程6.3使用STMotorProfiler获得电机参数(4)测量结果如图3-83所示。测量结束后,电机的参数将会以不同颜色显示在图中,包含电阻R_s,电感L_s,电势系数K_e等参数。若是绿色说明精度可靠,若有一个或多个结果为橙色显示,请检查硬件设置,并重新启动STMotorProfiler。测量成功后可点击“Save”按钮,将电机参数保存到C:\Users\name\.st_motor_control\user_motors目录下,可供STMCWorkbench使用图3-83测量结果6.4STMCSDK5.x固件介绍(1)电机控制SDKMCSDK5.x固件整体架构如图3-84所示,从下往上分别是外设层,电机库层,电机应用层。图3-84STM32电机控制固件架构6.4STMCSDK5.x固件介绍最下层为芯片外设库,芯片外设库使用STHAL/LL库,可被各个层级调用,针对芯片的每种外设都有对应的库函数提供。必须掌握的外设有TIMER,ADC,GPIO。电机库是主要的电机FOC控制层,包含FOC算法,单片机外设配置,中断机制等各个环节;
最上层为电机应用层,供用户直接使用电机库,而不去关心底层如何实现的,加快用户程序开发,一般应用用户只需要熟练掌握电机应用层的API即可使用。图3-85芯片外设库函数列表6.4STMCSDK5.x固件介绍MCSDK5.x固件主要由电机控制座舱、电机控制库、用户界面库构成。①电机控制座舱:电机控制座舱将软件组件集成到MC固件子系统中,并实现了调节回路。它实例化、配置和连接在PMSMFOC库和用户界面库中为用户应用选择的固件组件。根据应用特征,MC座舱代码由STM32CubeMX产生,所以座舱代码只包含所需内容,易于读取。图3-86电机控制座舱组成电机控制座舱把电机控制库组件有机的结合起来去完成整个电机控制的功能。实例化并配置实例化并配置所有需要的组件组高频任务中频任务安全任务6.4STMCSDK5.x固件介绍直接使用这些API函数就能够实现,用户不需要关心底层如何操作,只需要关注自身需要实现哪些必要的功能,使得项目开发更加快速有效。6.4STMCSDK5.x固件介绍②电机控制库电机控制库是软件组件的集合,每一个组件实现电机控制的一个功能。组件是一个自给自足的软件单元,包含一个结构体,在结构体中定义了能完成此组件功能的数据变量,另外还包含一系列的函数,这些函数操作结构体中的数据变量实现组件的功能。组件通常包含一个.c文件和一个.h文件。结构体以组件名缩写+_Handle_t命名,函数以组件名缩写+函数功能命名。图3-87具有其句柄和函数的组件6.4STMCSDK5.x固件介绍X-CUBE-MCSDK_5.x中1-22以源程序的方式提供,23-29组件均以库的形式提供,无法看到源码,可以根据提供的头文件从库里调用相应的函数。③用户界面库:用户界面库是负责通讯的组件。电机控制代码通过这些组件控制串口和DAC与外界通讯。通过这个库可以连接MCU和Workbench,在Workbench中实现对电机运行状态的监控。表3-2组件列表序号源文件描述1bus_voltage_sensor.c母线电压2circle_limitation.c电压极限限制3enc_align_ctrl.c编码器初始定位控制4encoder_speed_pos_fdbk.c编码器传感器相关5hall_speed_pos_fdbk.cHall传感器相关6inrush_current_limiter.c浪涌电流限制7mc_math.c数学计算8mc_interface.c电机控制底层接口9motor_power_measurement.c平均功率计算10ntc_temperature_sensor.cNTC温度传感11open_loop.c开环控制12pid_regulator.cPID环路控制13pqd_motor_power_measurement.c功率计算14pwm_common.cTIMER同步使能15pwm_curr_fdbk.cSVPWM,ADC设定相关接口16r_divider_bus_voltage_sensor.c实际母线电压采集17virtual_bus_voltage_sensor.c虚拟母线电压18ramp_ext_mngr.c无传感开环转闭环控制19speed_pos_fdbk.c速度传感接口20speed_torq_ctrl.c速度力矩控制21state_machine.c电机状态相关22virtual_speed_sensor.c无传感开环运行相关23fast_div.c快速软件除法24feed_forward_ctrl.c前馈控制25flux_weakening_ctrl.c弱磁控制26max_toque_per_ampere.c最大转矩控制27sto_cordic_speed_pos_fdbk.c速度和位置反馈cordic28sto_pll_speed_pos_fdbk.c速度和位置反馈PLL29revup_ctrl.c启动控制6.4STMCSDK5.x固件介绍图3-88电机控制固件在开发环境中的应用(2)电机控制应用工作流:使用STM32电机控制SDK的电机控制软件应用设计通常从MCWorkbench开始。在SDK使用过程中,电机本体、电机控制硬件板、控制管脚、控制策略在MCWorkbench中配置完成,顺序为MCWorkbench、STM32CubeMX工程、电机库代码(芯片外设库+电机控制库+电机控制座舱+用户界面库+系统初始化)。STMStudio077.1
下载和安装7.2操作简介7.1下载与安装①①打开ST官网主页,在“Tools&Software”类别下搜索“STMStudio”,进入如图3-89所示的检索结果页面,点击“STM-STUDIO-STM32”(请注意将语言切换成中文),可以打开如图3-90所示的“获取软件”页面,点击“Getlatest”进行下载。。图3-89STMStudio检索结果图3-90STM-Studio-STM32下载页面7.1下载与安装②②进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-91至3-97所示。第一次安装的时候会弹出如图3-92和图3-93所示的对话框,要求下载安装JavaRuntimeEnvironment图3-91STM-Studio-STM32安装过程(1)图3-92STM-Studio-STM32安装过程(2)图3-93STM-Studio-STM32安装过程(3)7.1下载与安装②②进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-91至3-97所示。图3-94STM-Studio-STM32安装过程(4)图3-95STM-Studio-STM32安装过程(5)7.1下载与安装②②进入安装流程后,根据提示逐步完成安装,具体安装过程如图3-91至3-97所示。图3-96STM-Studio-STM32安装过程(6)图3-97STM-Studio-STM32安装过程(7)7.1下载与安装③图3-98STM-Studio-STM32安装成功运行后的主界面安装完成后,可以打开如图3-98所示的软件主界面。7.2操作简介打开STMStudio之后,主界面的各个功能的分区如图3-99所示图3-99STMStudio主界面功能分区7.2操作简介如图3-100所示,在右键菜单中点选“Import...”,打开“Importvariablesfromexecutable”窗口,点击“...”按钮打开“Selectexecutablefile”窗口,选择要打开的文件。图3-100STMStudio变量导入(1)7.2操作简介打开如图3-101所示的窗口,选择要导入的变量,点击“Import”按钮。图3-101STMStudio变量导入(2)7.2操作简介打开图3-102所示的窗口,在右键菜单中点选“Sendto”-->“Varviewer1”,可以在“Varviewer1”窗口查看变量的数值,在“DisplayVarviewer1as”中可以选择变量的展现形式。图3-102STMStudio变量监测感谢聆听第四章NUCLEO-G431RB基础实验例程LED点灯实验1234定时器PWM应用实验外部中断实验串行接口应用实验5数/模转换应用实验6互补PWM输出实验前言本章将通过实例,从最简单的外设开始,由浅入深,带领大家逐步学习STM32G4的入门使用。实验注意事项如下:①在实验接线之前,要根据电路原理图的布局、操作简单以及安全的原则先摆放好所有仪器,要调节的仪器放在离自己比较近的位置。②当要使用某个IO口作其他用途的时候,请先查看开发板的原理图,确认该IO口是否有连接在开发板的某个外设上,如果有,进一步确认该外设的这个信号是否会对此次使用造成干扰,如无干扰再使用这个IO。③上电之前,请注意板子上的跳线帽以及板与板之间的连接方式,若跳线帽或者板子间连接方式不对,会导致功能无法正常使用,或者损坏电路板。④实验过程中,一旦发现出现特殊情况,比如短路、导线着火等,必须马上断开电源。⑤实验过程中,需取下控制板上的某些短路帽时,务必记住其所在位置,在实验结束后将短路帽放回原处,以免造成开发板损坏或影响正常使用。LED点灯实验01实验目标及条件(1)实验目标按下按键后,实现LED灯闪烁。(2)实验条件①硬件平台:NUCLEO-G431RB②软件平台:STM32CubeMXKeiluVision5(MDK-ARM)实验步骤步骤一:创建新项目方法1:点击NewProject下的AccessToMCUSelector,接着在PartNumberSearch栏中输入STM32G431RB,然后双击选择STM32G431RBTx。图4-1新建工程,选择MCU图4-2选择MCU具体型号实验步骤方法2:点击NewProject下的AccessToBoardSelector,接着在CommercialPartNumberSearch栏中输入NUCLEO-G431RB,然后双击选择NUCLEO-G431RB。图4-3新建工程,选择开发板图4-4选择开发板具体型号实验步骤步骤二:引脚配置在完成步骤一以后,会进入如图4-5所示的Pinout&Configuration视图,在右下角的搜索栏中搜索PA5管脚,将其设置为如图4-6所示的GPIO_Output。图4-5进入Pinout&Configuration视图图4-6配置PA5管脚为GPIO_Output实验步骤步骤三:代码生成①点击“ProjectManager”进入如图4-7所示的工程配置界面②输入项目名称,选定项目存储位置③将Toolchain/IDE设定为MDK-ARM,版本选择自己电脑安装的版本④点击右上角“GENERATECODE”,即可生成代码⑤加载完毕后,弹出提示窗口,点击“OPENPROJECT”,进入KeiluVision5图4-7配置工程,生成代码实验步骤步骤四:代码编辑、编译与调试在KeiluVision5中的Application/User下打开main.c文件,在第100行左右找到以下循环语句while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3*/}然后添加代码HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);HAL_Delay(100);添加完成后点击Bulid按钮后再点击Download即可完成实验。图4-9代码修改实验步骤步骤四:代码编辑、编译与调试图4-10编译图4-11下载烧录实验结果实验结果:按下蓝色按键B1后,LED2开始闪烁,每经过0.1s变化到相反状态,闪烁周期为0.2s。图4-12LED点灯实验结果定时器PWM应用实验02实验目标及条件(1)实验目标利用定时器,实现LED灯的闪烁。(2)实验条件①硬件平台:NUCLEO-G431RB②软件平台:STM32CubeMXKeiluVision5(MDK-ARM)定时器简介定时器(Timer)最基本的功能是定时。把定时器与GPIO结合起来使用可以实现非常丰富的功能,如测量输入信号的脉冲宽度、生产输出波形等。NUCLEO-G431RB具有丰富的定时器资源,包括2个高级定时器(TIM1/TIM8),6个通用定时器(TIM2-TIM4/TIM15-TIM17),2个基本定时器(TIM6/TIM7)。定时器要实现计数必须有个时钟源,基本定时器时钟只能来自内部时钟,高级定时器和通用定时器还可以选择外部时钟源,或者直接使用来自其他定时器的等待模式。定时器简介当GATE=1时,“与门”的输出信号K由INTx输入电平和TRx位的状态一起决定,当且仅当TRx=1,INTx=1(高电平)时,计数启动;否则,计数停止。当INT0引脚为高电平时且TR0置位,TR0=1,启动定时器T0;当INT1引脚为高电平时且TR1置位,TR1=1,启动定时器T1。GATE=0时,“或门”输出恒为1,“与门”的输出信号K由TRx决定,定时器不受INTx输入电平的影响,由TRx直接控制定时器的启动和停止。图4-13定时器/计数器原理框图定时器简介在对定时器进行编程时,常用的函数如表4-1所示。表4-1定时器编程常用函数列表函数名称函数功能HAL_TIM_Base_Init()InitializetheTIMTimebaseUnitHAL_TIM_Base_DeInit()De-InitializetheTIMBaseperipheralHAL_TIM_Base_MspInit()InitializetheTIMBaseMSPHAL_TIM_Base_MspDeInit()De-InitializetheTIMBaseMSPHAL_TIM_Base_Start()StartstheTIMBasegenerationHAL_TIM_Base_Stop()StopstheTIMBasegenerationHAL_TIM_Base_Start_IT()StartstheTIMBasegenerationininterruptmodeHAL_TIM_Base_Stop_IT()StopstheTIMBasegenerationininterruptmodeHAL_TIM_Base_Start_DMA()StartstheTIMBasegenerationinDMAmodeHAL_TIM_Base_Stop_DMA()StopstheTIMBasegenerationinDMAmode中断资源中断资源Nucleo-G431RB具有102个可屏蔽高端通道(不包括Cortex-M4F的16根中断线),还具有16个可编程优先级(使用了4位中断优先级),低延迟异常和中断处理。同时还具有电池管理控制功能,能够实现系统控制寄存器。在编写程序中,需要使用定时器时,需先使能定时器,如图4-14所示,并调节定时器的频率,而后才可以对定时器相关功能进行编程。图4-14定时器使能配置实验步骤步骤一:创建新项目创建一个新项目,此处采用方法1:点击NewProject下的AccessToMCUSelector后在PartNumberSearch栏中输入STM32G431RB后双击选择STM32G431RBTx。图4-15新建工程,选择MCU图4-16选择MCU具体型号实验步骤步骤二:配置TIM2与引脚①配置TIM2的Channe1为PWMGenerationCH1图4-17配置定时器图4-18配置PA5管脚为TIM2_CH1②将TIM2_CH1重新映射到PA5管脚(默认为PA0)实验步骤③设定TIM2时钟频率为64MHz图4-19设定TIM2时钟频率图4-20设置定时器参数④设置1Hz,占空比为50%的PWM,如图4-20所示,将“Prescaler”、“CounterPeriod”与Pulse分别设为1023、62499与31250实验步骤步骤三:生成代码①点击ProjectManager进入界面显示②输入项目名称,选定项目存储位置③将Toolchain/IDE设定为MDK-ARM,版本选择自己电脑安装的版本④点击右上角GENERATECODE,即可生成代码⑤加载完毕后点击OPENPROJECT,进入KeiluVision5图4-21配置工程,生成代码实验步骤步骤四:代码编辑、编译与调试①点击项目展开后,再展开Application/User/Core,双击打开main.c图4-23代码编辑实验步骤②在/*USERCODEBEGIN2*/与/*USERCODEEND2*/之间加入代码图4-24添加代码图4-25编译、下载烧录③将板子连接后,点击编译按钮进行编译,编译成功后点击DeBug按钮后,下载成功后再点击黑色复位按钮,就会发现LED灯以1Hz50%占空比开始闪烁。实验结果实验结果如下:LED2以1Hz50%占空比开始闪烁(1秒闪烁一次)。图4-26定时器PWM应用实验结果外部中断实验03实验目标及条件(1)实验目标利用外部中断,通过按钮来改变LED灯的状态。(2)实验条件:①硬件平台:NUCLEO-G431RB②软件平台:STM32CubeMXKeiluVision5(MDK-ARM)实验步骤步骤一:创建新项目此处采用方法2:点击NewProject下的AccessToBoardSelector,接着在CommercialPartNumberSearch栏中输入NUCLEO-G431RB,然后双击选择NUCLEO-G431RB。图4-27新建工程,选择开发板图4-28选择开发板具体型号实验步骤步骤二:引脚及中断配置配置引脚PC13和PA5,PC13配置为CPIO_EXTI13,PA5配置为GPIO_Output,正常情况下这两个引脚的默认配置就是这样,已由STM32CubeMX自动配置。图4-29配置PA5管脚为GPIO_Output图4-30配置PC13管脚为GPIO_EXTI13实验步骤时钟树保持默认配置图4-31时钟配置图4-32NVIC配置在SystemCore中选择NVIC,使能外部中断,并配置中断优先级。实验步骤步骤三:代码生成①点击ProjectManager进入工程配置界面②输入项目名称,选定项目存储位置③将Toolchain/IDE设定为MDK-ARM,版本选择自己电脑安装的版本④点击右上角GENERATECODE,即可生成代码⑤加载完毕后点击OPENPROJECT,进入KeiluVision5图4-33配置工程,生成代码实验步骤步骤四:代码编辑、编译与调试在KeiluVision5中的Application/User下打开用户中断函数stm32g4xx_it.c文件,在外部中断函数进行编辑,具体方式为在第212行添加如下代码:HAL_GPIO_TogglePin(LD2_GPIO_Port,LD2_Pin);函数的功能为当按键PB1按下时触发外部中断,LED2状态反转。图4-35外部中断函数编辑实验步骤生成完成之后点击魔术棒,选择Debug,点击Settings,勾选ResetandRun,之后进行Build,Build完成无误后点击Download完成实验。图4-36调试、编译、下载图4-37复位、运行实验结果最终的实验结果如下:当蓝色按键按下时触发外部中断,LED2状态翻转,左图中LED2灯灭,右图中LED2灯亮。图4-38外部中断实验结果串行接口应用实验04实验目标(1)实验目标通过串口实现驱动板和电脑之间的信息传输,电脑发送一段字符串,会收到同样的字符串。(2)实验条件①硬件平台:NUCLEO-G431RB②软件平台:STM32CubeMX KeiluVision5(MDK-ARM)③串口调试工具:XCOM实验步骤步骤一:创建新项目创建一个新项目,此处采用方法1:点击NewProject下的AccessToMCUSelector后在PartNumberSearch栏中输入STM32G431RB后双击选择STM32G431RBTx。图4-39新建工程,选择MCU图4-40选择MCU具体型号实验步骤步骤二:引脚配置与串口设置①将引脚PA5设置为GPIO_Output图4-41配置PA5管脚为GPIO_Output实验步骤②点击Connectivity,设置USART1为异步模式(Asynchronous),并在NVICSettings页面使能中断图4-42设置USART1为异步模式图4-43使能中断实验步骤步骤三:生成代码①点击ProjectManager进入工程配置界面②输入项目名称,选定项目存储位置③将Toolchain/IDE设定为MDK-ARM,,版本选择自己电脑安装的版本④点击右上角GENERATECODE,即可生成代码⑤加载完毕后点击OPENPROJECT,进入KeiluVision5图4-44配置工程,生成代码实验步骤步骤四:代码编辑、编译与调试①打开main.c,在用户代码引用区包含需要的头文件,进而可以正常使用需要用到的函数。②在用户代码区定义变量,用来储存收到的字符串,在字符串超出256长度时,会返回morethan256。图4-46引用头文件代码图4-47变量定义代码图4-48串口初始化代码实验步骤③在用户代码区2加入代码,对串口进行初始化。④在用户代码区加入函数HAL_UART_RxCpltCallback(UART_HandleTypeDef*huart),实现发送功能。图4-48串口初始化代码图4-49发送功能实现代码图4-48串口初始化代码实验步骤⑤完成代码添加后,点击如图4-50中所示的“Build”按钮进行编译,然后再点击“Download”按钮进行下载。图4-50编译、下载烧录图4-48串口初始化代码实验步骤步骤五:连接串口与通讯如图4-51所示,两个MCU之间进行通讯,Tx是发送,Rx是接收,一个MCU的Tx与另一个MCU的Rx相连接,实现信息的发送和接收。在本实验中,开发板的Rx为PC5,使用杜邦线或光缆线将其与电脑的Tx连接,电路板的Tx为PC4,同样的方法与电脑的Rx连接,最后将电脑的地线与板子的GND相连接。PC4引脚为CN10的34号引脚,PC5为CN10的6号引脚,GND为CN7的22或20号引脚。PC4和PC5引脚的配置如图4-52所示。图4-51MCU间串口通讯示意图图4-52配置PC4和PC5引脚实验步骤步骤五:连接串口与通讯打开串口调试工具,将通讯参数设置为如图4-53所示的参数,与图4-54所示的STM32CubeMX中的通讯参数设置一致图4-53串口通讯参数设置图4-54STM32CubeMX串口通讯参数设置实验结果实验结果如图4-55所示,在串口通讯工具中进行通讯,发送一个字符串,会接收到同样的一个字符串。图4-55串行接口应用实验结果数/模转换应用实验05实验目标(1)实验要求利用NUCLEO-G431RB的ADC转换器将检测到的电压转化为数值,之后再利用DAC转换将某个变换的数值转化为电压,再利用ADC的方法检测产生的电压值。(2)实验条件①硬件平台:NUCLEO-G431RB②软件平台:STM32CubeMXKeiluVision5(MDK-ARM)ADC引脚介绍ADC(AnalogtoDigitalConverters)是模数转换器的简称,可以将各种模拟信号转化为数字信号进行处理。常用的有并联比较型ADC和逐次逼近型ADC,NUCLEO-G431RB上使用的ADC是逐次逼近型ADC,同时STM32的ADC支持多种转换模式,可以适用于不同的应用场合。具体参数如表4-2所示。功能特征STM32G4系列套件的值ADC数量最多5个分辨率12bits(或者10,8,6bits),过采样为16bitsADC原理准则逐次逼近寄存器(SAR)ADC时钟周期最高60MHz(多ADC通道处理时最高52MHz)采样速度最快4Msps(多ADC通道处理时最高3.46Msps)采样时间2.5到640.5[ADC时钟周期]供应电压触发外部引脚或者内部外围设备(如计时器)转换模式单步,连续,扫描选定通道,非连续模式表4-2ADC参数实验步骤步骤一:创建新项目与实验4.1相同,创建一个新项目,此处采用方法2:点击NewProject中的ACCESSTOBOARDSELECTOR,选择NUCLEO-G431RB。图4-56新建工程图4-57选择开发板实验步骤步骤二:配置ADC和DAC点击左边的Analog中的ADC1,将IN1设置为IN1Single-ended,使能ADC通道PA0。点击DAC1,将OUT1mode设置为Connectedtoexternalpinonly。图4-58配置ADC图4-59配置DAC实验步骤步骤三:生成代码①点击ProjectManager进入界面显示②输入项目名称,选定项目存储位置③将Toolchain/IDE设定为MDK-ARM④点击右上角GENERATECODE,即可生成代码⑤加载完毕后点击OPENPROJECT,进入KeiluVision5图4-60配置工程,生成代码实验步骤步骤四:代码编辑、编译与调试①打开main.c文件,在用户代码引用区包含需要的头文件。②在用户代码区0定义变量,用来存储ADC得到的数值(Value)以及DAC设置的数值(Voltage)。图4-62引用头文件代码图4-63变量定义代码图4-48串口初始化代码实验步骤③在用户代码区2进行初始化配置。④在while循环中写入ADC、DAC的操作,ADC函数的功能是直接读取PA0引脚上的模拟值并转化为数值,DAC的功能是将变化的vlotage的值转化为模拟值在PA4处输出。图4-64初始化代码图4-65ADC、DAC功能实现代码图4-48串口初始化代码实验步骤⑤代码添加完成后,点击如图4-66中所示的“Build”按钮进行编译,然后再点击“Download”按钮进行下载,即可实现程序的运行,烧录后记得按Reset按钮来执行新写入的程序。图4-66程序下载烧录实验步骤步骤五:实验结果观察①利用STMStudio软件可以实时观察电路板中变量的值,打开STMStudio,在图4-67所示空白区域右键点击“Import…”。②在用户代码区0定义变量,用来存储ADC得到的数值(Value)以及DAC设置的数值(Voltage)。图4-67变量值观察窗口实验步骤步骤五:实验结果观察②点击图4-68中右边的省略号,将烧录文件axf包含进去,axf文件的位置在Ke
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 阿立哌唑治疗精神分裂症临床应用指南
- 2026浙江宁波市余姚市自然资源和规划局招聘编外人员1人备考题库及完整答案详解(名校卷)
- 2026中共湖南省委党校(湖南行政学院)招聘高层次人才17人备考题库附完整答案详解【考点梳理】
- 北京市朝阳区2014年一模语文试题
- 2026四川成都市第二十五幼儿园储备教职工招聘备考题库及答案详解(名师系列)
- 2026中国科大图书馆劳务派遣岗位招聘2人备考题库及参考答案详解(a卷)
- 2026中国科学院上海生命科学研究院分子细胞卓越中心惠利健组招聘科研助理备考题库必考题附答案详解
- 2026广西玉林市福绵区就业中心招聘见习生1人备考题库及答案详解(典优)
- 2026上半年四川事业单位统考涪城区考试招聘中小学教师32人备考题库标准卷附答案详解
- 2026中国能建中电工程中南院春季校园招聘8人备考题库附答案详解【典型题】
- 物料提升机监理实施细则
- AI时代中国青少年儿童核心素养培育研究报告 2026
- 2026年湖南民族职业学院单招职业技能考试题库与答案详解
- 2026新疆哈密市中心医院招聘91人考试参考试题及答案解析
- 事故隐患内部报告奖励制度范本
- 宝宝早期教育的重要性
- 汇达资产社会招聘笔试题
- 2025年2026云南昆明医科大学第一附属医院开展第二批校园招聘47人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 【《基于物联网的智能衣柜系统设计》7200字】
- 企业质量安全公告板制度
- 2021年度云浮市郁南县都城镇万洞村垦造水田项目竣工验收报告
评论
0/150
提交评论