
一、STM32CubeMX 简介 1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。 在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间,大大的节省了时间 安装CubeMx一共需要三个
由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用, 百度云:https://pan.baidu.com/s/1WD5E4enEZ_mw0-NGBl_bUw 提取码: e8gs (定时更新最新版本) 1点击安装 ![]() 2 修改路径 点下一步 ![]() 3 等待安装完成,关闭界面 ![]() 2安装STM32CubeMX 百度云:https://pan.baidu.com/s/1dm83PbIsq7Vk9bAyFNinag 提取码: wjmd 官网下载: ![]() 在官网下载需要注册下ST官网账号,目前最新为5.3.0版本,不想在官网下可以在百度云盘下载, 3 ^& J" E4 w% H3 |$ O* ]1打开安装包 ![]() 2同意协议,下一步 ![]() 3 勾选第一个即可,第二个选项是是否同意ST公司收集你的个人使用信息等。 ![]() 4 点YES 这句话是安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失 是否继续 点继续即可 ![]() 5 直接点NEXT,其他不用设置 之后开始安装 ![]() 6 安装完成,点Done退出 ![]() 3安装HAL库 什么是HAL固件库? STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP / IP和图形等等。 0 u* z9 U% H- @3 ^. M3 p+ f和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。 并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境; HAL库,有在线安装、离线安装两种方式。 " H1 Q! b$ W2 ? p* z/ x+ ]在线安装 打开安装好的 STM32CubeMX 软件 点上面的Help -> Manage embedded software packages ![]() 会跳出来一个选择型号界面 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图: ![]() 离线安装需要下载安装包,这里提供百度云和ST官方下载方式 PS:建议在线安装 速度快,又稳定 软件下载旁边一栏就是HAL库下载 下载对应芯片的安装包 ![]() ![]() 百度云:https://pan.baidu.com/s/1dm83PbIsq7Vk9bAyFNinag 提取码: wjmd % {) C0 M2 Y: T k# z( d0 [ 1直接导入安装包 Help -> Manage embedded software packages ->From Local 选择离线包即可 ![]() 2直接解压 Help->Updater Settings... 可以选择HAL库安装包路径 ,默认在C盘 可以自行修改 ![]() 解压到相对应路径即可 ![]() 到此,恭喜你的STM32 CubeMx安装成功了。 4 l+ |+ @" M* ^$ t新建工程 1在主界面选择File-->New Project 或者直接点击ACCEE TO MCU SELECTOR ( t9 j3 z: z& d* K2 e2 y8 \![]() 出现芯片型号选择 一般我们直接搜索自己芯片的型号即可 如果你是设计产品想要选择一款芯片 在搜索栏的下面,提供的各种查找方式,可以选择芯片内核,型号,等等,帮助你找到适合的芯片 具体流程1:
那么接下来就是我们整个流程的重头戏了 ![]() 这里我们分成三大块来讲解 1MCU外设资源选择 在这里可以选择MCU的各种资源和外设 提供两种方式 ![]()
将MCU的各种外设和资源分类,供用户选择使用
MCU的外设资源按A-Z 排序,供用户选择使用 2外设配置 这里可以设置你所选择外设的各种功能 这里以串口1为例 我们可以选择串口的模式(异步,同步,半双工) 串口接收中断,和串口DMA传输等等 ![]() 和我们配置库函数的时候基本一样,但是 STM32CubeMx将这些转换为了图形和选项 ,我们配置的时候不用再去配置各种东西,只需要傻瓜式操作便可以配置我们需要的外设 这便是CubeMx的核心所在 3预览界面 ![]() 这里分为引脚预览 和系统预览 引脚预览就是可以查看那个引脚配置了什么功能,和各个引脚位置 $ g/ S* O; [! d, X; M7 \5 d随便点击一个引脚,即可设置该引脚的各种功能 ![]() ![]() ![]() ![]() 系统预览 系统预览就是查看配置的各种外设和GPIO的状态 ![]() ![]() ![]() 具体各个功能的配置(UATR/DMA/ADC/TIM...)我们再接下来的文章会一一讲解,这里就不再过多介绍了 具体流程2: 这里只需要把我们的LED对应引脚设置为GPIO_Output即可 ![]() ![]() 其实也就是32的时钟树框图让你配置 默认时钟是使用内部RC振荡器(HSI) 如果不懂的话请看《【STM32】系统时钟RCC详解(超详细,超全面)》 具体流程3: 或者先按照图中方式配置为72MHz即可
![]() 设置完MCU的各个配置之后,第三个就是工程文件的设置了 ![]() 具体流程4: 这里就是工程的各种配置 我们只用到有限几个,其他的默认即可 IDE我们使用的是 MDK5
然后点击Code Generator,进行进一步配置 (重点) ![]() ![]() 将HAL库的所有.C和.H都复制到所建工程中 优点:这样如果后续需要新增其他外设又可能不再用STM32CubeMX的时候便会很方便 缺点: 体积大,编译时间长(很长) ![]() 只复制所需要的.C和.H (推荐) 优点:体积相对小,编译时间短,并且工程可复制拷贝 缺点: 新增外设时需要重新用STM32CubeMX导入 ![]() 不复制文件,直接从软件包存放位置导入.C和.H 优点:体积小,比较节约硬盘空间 缺点: 复制到其他电脑上或者软件包位置改变,就需要修改相对应的路径 自行选择方式即可 具体流程5: 然后点击GENERATE CODE 创建工程 ![]() 创建成功,打开工程 ![]() 具体流程6:while循环添加下面两行代码即可 ![]()
![]() 具体流程7: 新建的工程所有配置都是默认的 我们需要自行选择下载模式,勾选上下载后复位运行 ![]() 所有自己编写的代码请放在/* USER CODE BEGIN XXX */ /* USER CODE END XXX */之间 这样我们修改工程的时候你自己写的代码就不会被删除 ![]() 到此,STM32CubeMX的基本使用介绍完了 ) C& L5 @) ]7 ]$ W' {3 Q3 y8 }( z4 t |
拷打cubemx【002】——自定义还需基于芯片的工程
【STM32N6570-DK评测】3.CubeMX关于DCMIPP和CSI的BUG整理及摄像头使用
【实测教程】STM32CubeMX-STM32L4之研究(ADC)
【下载问题解决】关于ST官网下载软件问题解决
兔哥的初代M33【002】-H503Nucleo 内部flash操作
TouchGFX应用移植自定义屏幕
拷打cubemx【001】——艰难的选型路
兔哥的杂谈【002】——如何性价比更高地去编译STM32
【圣诞专享活动】使用TouchGFX做GUI显示:圣诞快乐&Merry Christmas!
X-NUCLEO-IKS4A1实现手势滑动
感谢分享
不错的学习资料!!!!!!