STM32Cube 简单实验的翻译

2/13/2017来源:经验技巧人气:2201

6.1 创建一个新的STM32CubeMX工程 1.在开始菜单中选择File>New PRoject或者在欢迎界面中选择New Project 2.选择MCU Selector tab 然后进入STM32 芯片集选择对应型号的设备 3.选择MCU并点击OK

用MCU信息填充的STM32CubeMX视图:

通过对Window> Outputs 的取消选择,清除MCU的选择按钮窗口

6.2 配置MCU引脚输出 关于对菜单的细节描述,高级的作用和复杂的解决方法,参考其他 1.默认的,STM32CubeMX显示引脚输出。 2.默认的,没有选中,它起允许STM32CubeMX来围绕外围的功能移动并可以找到最好的引脚分配,这是一种容纳最大数量的外围模式。 既然MCU引脚配置必须符合STM32F4DISCOVERY板,在STM32CubeMX中允许来维持外围功能的分配到一个给定的引脚。 3.选择必须的外设和外围功能 a):通过右击在可视图上的PD12来配置GPIO来输出信号到STM32F4DISCOVERY板绿色的LED,然后选择GPIO_output。 b):使能一个定时器用来做时间基准来让LED闪烁。通过设置在外围的树中的内部定时器TIM3。

c):为了用外部晶振,你也可以配置RCC作为可能的时钟源。

注意:使用STM32CubeMX 4.2,用户可以通过从Board selector tab里直接加载 ST Discovery板,跳过引脚输出配置。

6.3 保存工程 1.点击保存工程 当你第一次保存工程,给工程设置存储路径和文件名。.ioc扩展名自动被添加,用来指示这个是一个STM32CubeMX配置文件

2.点击保存工程为一个不同的地址或名字

6.4 生成报告 报告可以在配置的任何时刻被生成。 1.点击来生成.pdf或.txt的报告 如果还没有创建工程,会产生一个警告来提醒用户首先保存这个工程并且需要给工程命名和指定保存路径。然后一个.ioc文件被生成并且一个.pdf或.txt格式的报告生成为同样的名字。如果选择“NO”将会要求你只为报告提供名字和地址。

当成功创建的时候,会展示一个确认消息。 2.这个报告概述了所有这个工程执行的设置和配置。

6.5 配置MCU时钟树 下面的步骤描述了如何通过此应用配置基于STM32F4 MCU的时钟。 STM32CubeMX自动从时钟源和用户设置的分配器生成了系统,CPU和AHB/APB总线频率。根据动态的最大值最小值验证,错误的设置会被发现并被用红字突出标记。当设置不可用或错误时,可用的工具提供详细的选项描述来确保不会出错。用户的频率设置可以影响一些外围器件的参数(例如:UART的波特率范围)。 STM32CubeMX使用被定义在可视的时钟树上的时钟设置来生成对每一个外部时钟的C语言代码初始化。时钟设置作为生成RCC初始化的一部分C语言代码在main.c和stm32f4xx_hal_conf.h中被执行。(HSE, HSI and External 时钟值表达为赫兹)。 按照以下的顺序配置MCU时钟树: 1.点击Clock Configuration来显示时钟树。 内部(HSI,LSI)、系统(SYSCLK)、外部时钟频率的选项不能被编辑。系统和外部时钟可以通过选择被调整,可以选择用PPL,分频器和乘法器。

2.首先选择时钟源(HSE(高速外部时钟), HSI(高速内部时钟)or PLLCLK),它将驱动微控制器的系统时钟。

为了用外部时钟源(HSE或者LSE),需要在PinOut界面配置外部RCC,因为引脚要被用以连接外部晶振。

其它在STM32F4DISCOVERY 板上的时钟配置需要做: ——设置外部的高速外部时钟源,输入8在HSE输入框是因为一个8MHz的外部晶振连接到了开发板上。

——设置外部PLL时钟源,HSI或者HSE作为PLL的输入时钟源。

3.用HSI让内核和外部时钟保持16MHz,不要用PLL和预分频器。 注释: 用PPL,预分频器和乘法器能产生更多适合系统和外部时钟的频率: ——USB OTG FS,随机数发生器和SDIO时钟被PLL的独立输出所驱动 ——I2S外设随着他们自己的外部时钟(PPLI2S)发生,或者被一个独立的外部时钟源驱动。 ——USB OTG HS和以太网时钟被外部时钟源驱动。

4.为微控制器时钟输出(MCO)引脚配置分频允许输出两个时钟信号到外围电路。 5.点击来保存工程。 6.去Configuration栏来继续工程配置。

6.6 配置MCU初始化参数 提示: 通过STM32CubeMX生成的C语言用STM32CubeMX固件库实现了MCU外设和中间件的初始化。 6.6.1 初始的环境 选择Configuration栏来显示配置界面。 在ip Tree框内,没有相互影响的外设和中间件模式可以被启用或禁用。影响引脚分配的模式只可以在Pinout栏中选择。 在主界面,当外设配置不适当的时候,显示工具箱和警告信息 注意:RCC外设初始化既会用这个界面的参数配置又会用时钟树界面的参数配置(时钟 源、频率、分频值等等)。

6.6.2 配置外设 在主界面,每一个外部的实例和按钮的名字相一致。一些外部的功能没有以配置的参数如下图:

按照下面的步骤来完成参数配置: 1.点击外设的按钮来打开相应的配置窗口。 在例子中, A)点击TIM3打开时钟配置窗口

B)在16MHz的APB时钟下,设置分频为16000以每毫秒为周期,并且计数器1000 个周期让LED闪烁。 2.可选的和可用的设置 ——NVIC Settings选项用来显示NVIC的配置和为外设使能中断。 ——DMA Settings选项用来显示DMA配置和为外设配置DMA通道。 在教程的例子中,DMA没有使用,GPIO设置保持不变。中断如图被使能:

——GPIO Settings选项是用来显示GPIO配置和配置外设的GPIO

3.修改并点击Apply或者OK来保存你的修改。

6.6.3 配置GPIO 用户可以在这个窗口中调整所有的引脚配置。一个小的图标和一个提示框表示配置状态。 按照如下顺序配置GPIO: 1.在配置界面中点击GPIO按钮来打开一个如下所示的GPIO配置窗口。

2.第一个标签显示一个被指定GPIO模式的引脚,但是没有一个专门的IP。可以打开配 置为引脚设置一个引脚名称。 在教程中,选择PD12,设置输出和上下拉模式来驱动STM32F4DISCOVERY的LED。

3.点击Apply或OK来关闭这个窗口。

6.6.4 配置DMA 推荐使用DMA转换来为CPU减负。DMA配置窗口提供了一个简单快速的方法来配置DMA。 1.添加一个新的DMA请求并且在列表内的配置。 2.从可选择的条中设置。 3.设置方向:存储器到外设或者外设到存储器。 4.设置优先级. 注释:为DMA配置一个IP也可以用IP配置窗口。

6.6.5 配置中间件 在教程中这不是必须的。 如果一个外设想要中间件的功能,这个外设必须在Pinout界面中配置,才能使中间件功能变的可用。提示栏可以用提示框引导用户在如下的FatFs例子中:

1.在Pinout界面中配置这个USB的IP。

2.为USB控制中间件选择MAC_FS类。 3.在树形控制板中选择这个选择框来开启FatFs功能。 4.选择Configuration视图,FatFs和USB按钮就被显示出来了。 5.FatFs和USB应用的默认设置已经被标记在里,点击FatFs或者USB按钮来显示默认设置。你也可以根据在窗口底部的指导来改变它们。

6.7 获得一个完整的C工程。 6.7.1 设置项目选项 默认项目设置可以像图中描述的一样在生成C代码之前被调整。 1.选择在Project窗口里Setting的来打开工程设置窗口。 2.选择Project Tab,选择一个名字,位置和工具链(IDE)来生成项目文件。

3.选择选项Code Generator来选择各种C语言代码生成的操作: ——在工程文件夹中拷贝库文件。 ——C语言代码恢复。(如C语言代码恢复期间什么被留下或备份) ——HAL特定的功能。(如把所有空闲的引脚设置成模拟IO来减少MCU功耗) 注释:当固件包找不到的时候会出现一个对话框。跳转到下一个部分来说明如何下 载固件包。

6.7.2 下载固件包并生成C语言代码 1.点击来生成C语言代码 在C语言代码生成期间,STM32CubeMX从相关的STM32CubeMX固件包中拷贝文 件到工程文件夹中使工程可以编译。当第一次生成工程文件时,这个固件包在用户 的电脑上不可用并展示一个警告消息。

2.STM32CubeMX提供有关固件包或者链接。点击下载来获得一个完整的项目,准备被 用在选择的IDE上。 点击继续,只有Inc和Src文件夹将被创建,保存STM32CubeMX生成的初始化文件。 必要的固件库和中间件库将被手动拷贝来获得一个完整的项目。 如果下载失败,会显示如下错误信息:

3.选择Help > Updater settings menu来判断连接参数来匹配你的网络配置。

4.点击Check connection,建立练级一次后这个连接选项变绿。

5.一旦连接功能,点击来生成C语言代码。C语言代码生成进度显示如下图

6.最后,显示一个完成信息来指示C语言代码成功生成。 7.点击Open Folder来显示生成的项目文件内容或者点击Open Project在你的IDE中直 接打开工程。

生成的工程包含: ——在根目录中有STM32CubeMX .ioc工程文件。它包含了STM32CubeMX用户端的工 程的用户配置和生成设置。 ——保存了驱动和中间件文件夹和有关用户配置的固件包文件。 ——Projects文件夹保存特定的IDE所有需要工程发展和调试文件。 ——Inc和Src文件夹包含STM32CubeMX生成的中间件,外设和GPIO初始化文件,包 括main.c文件。STM32CubeMX生成的文件包含用户可编写部分允许用户编写C代 码。 写在用户段的C语言代码在下一次C语言代码生成的时候受保护,除非C语言 代码写在外面或段放不下了。 如果用户段被移动或者分隔符被重命名,用户C语言代码将被丢失。