STM32Cube 简单实验的翻译

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语言代码将被丢失。

纯人工翻译中文版本,STM32CubeMX用户手册中文版,STM32CubeMX用户手册中文版UM1718-翻译版.菜鸟到高手,显得有些霸气哈,不过的确如此,官方带给我们一个比较实用的stm32的工具。这个工具就是STM32CubeMX,昨天玩freeRTOS的时候就提到过。说到freeRTOS,这里就多说两句。全局变量,在任务间相互访问的时候也是需要临界保护的,不然可能会出现奇怪的问题。不过我们可以关掉时间片调度,任务间可以访问全局变量而不用加保护(不等于菜鸟可以随意代码)。关闭了时间片调度,只有发生vTaskDelay的时候才会上下文切换。只要代码合理访问全局变量可以不加保护的。因此代码也不是可以任意书写的,关于freeRTOS的问题,多看看源码,一切都会有答案。源码较少,这里就不过多介绍。关闭时间片不是网上说的configUSE_TIME_SLICING这个宏定义,老鸟发现这个宏压根没用哈,嘿嘿。阅读源码可以找到相关宏配置。不过不建议关闭,时间片调度也可以让一个任务在执行一定时间后切换到其他就绪任务去执行。如果有freeRTOS相关问题,可以留言给我。废话说多了点哈,继续我们的STM32CubeMX。下面我们来讲讲这个工具的作用,讲完后,可以自己下载一个试试,挺简单不多介绍。 到官网下载STM32CubeMX,并安装。 1:芯片选型 打开STM32CubeMX,我们点击new project,我们就可以进行芯片选型,如果你下载了打开了这个工具,是不是很惊讶,stm32的所有产品型号都在里面,而且左下提供了资源勾选,比如你要以太网支持,勾选以太网选项,所有的支持以太网的stm32芯片才会被显示,旁边还有个max的栏目指示了芯片最多支持该功能的个数。空白的一般默认只有一个。下图是我勾选以太网的截图。 上图不仅提供了芯片,还提供了价格,是否在售,封装,存储,频率等一些列信息。 除了cpu资源可以选型外,上面还提供了脚多少,存储大小等非常灵活的选型方式。 我们选择其中一个的单片机后。右上部分给我们提供了完美的支持。 第一个选项提供了改cpu 的特性,我们可以大概的了解选中的cpu资源。 第二个选项提供该cpu框图,截图图片太大,这里就不截图了。 第三个选项提供了cpu文档,这个文档非常多也非常全面,基本不用在网上东找西找了,主要给硬件工程师用。 第四个选项提供了cpu的相关设计资源,软件编程文档,给软件工程师用,非常全面,包括网上很少用到的文档资料,比如系统移植相关的底层资料(堆栈,指令,汇编)。 第五个选项提供了芯片购买途径,这个每个人自己选择吧。 第六个选项开始工程,芯片选好了,就可以开始工程。 2:设定芯片。 芯片选好后,可以开始设定芯片。这就是软件工程师的好帮手呀。比如我要以太网功能,勾选上以太网即可,他就会自动分配出芯片对应的以太网接口。如下图: 上面我选了标准的MII接口。很多人可能就不理解,你勾了个以太网,咋报错了。老鸟告诉你为啥变红了,stm32有个复杂的功能就是io口复用,勾选mii后分配的io口和spi2以及iis口重合了,所以这个工具非常智能的提示了出来,非常神奇吧。告诉你他们不能使用了。还有些变黄了,说明他们可以选择性使用,真是太方便了,省去了查资料慢慢找io的痛苦。比如我们还要给它个外部时钟。我们勾选时钟即可,响应的时钟脚就会分配出来。 如果要将某个脚设置成输入输出那就更简单了,鼠标点选对应的io口选择对应功能即可,比如我单击PA6,它的所有功能可以轻松选择: 软件使用比较简单,不过多解释,一看就明白,设置完芯片功能后,我们就设定系统各项功能时钟。 选择时钟设置页面(clock configuration)时钟轻松设定,如下图,简单明了,不过多解释了: 时钟配置完成后,可以切换到configuration选项对功能进一步设定,里面参数都是常用的功能,设置较为简单。就不多举例了,比如网络功能里面设置mac地址等。 3:生产初始化代码 经过上面的图形化设定,我们可以直接生产初始化代码。省去我们查阅资料慢慢配置的的环节,时间更多的利用在应用层设计。点击project下面的生成代码选项。输入工程名(根据你项目需要起名),这里我就随便输入一个名字。设定好相关参数。点击ok即可。顺便说下,这个工具是配带教程的,我这里只是告诉大家有这样个工具可以加速开发,具体设置参考官方教程。 生成后打开文件夹内容如下: 上图的inc 和src文件夹里面是生成的主要代码,其他几个文件夹里面的东西,大家可以根据自己需要选择。src文件夹文件如下: 打开熟悉的main.c,可以看到如下内容: 初始化已经完成,直接写自己的功能即可了,然后就是加入到工程里面编辑,是不是非常简单。熟悉的话10来分钟一个工程构架就出来了。这样一来,stm32就变成最简单的单片机了,有木有,这个是基于库函数的,io操作直接可以查看库函数手册完成。这个工具主要是加速底层开发。轻松弄出自己的应用程序。对于新入手stm32来说,用这个库函数,让开发变得简单。减少定时器,can,ad,line等外围配置花去的时间,图像化配置,秒变高手。最主要的是功能直观可见,编辑性好,可导入工程编辑。修改配置也简单
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值