网站首页 > 技术文章 正文
一、STM32CubeMX 简介
1、STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者, 允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32 全系列芯片。
在CubeMX上,通过傻瓜化的操作便能实现相关配置,最终能够生成C语言代码,支持多种工具链,比如MDK、IAR For ARM、TrueStudio等 省去了我们配置各种外设的时间,大大的节省了时间。
安装CubeMx一共需要三个
- JRE (Java Runtime Environment) Java运行环境 运行JAVA程序所必须的环境的集合
- STM32CubeMX
- HAL库 STM32 HAL固件库 ST官方推出的另一套库
1安装JRE
由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用,
官网:
https://www.java.com/en/download/manual.jsp
百度云:
https://pan.baidu.com/s/1WD5E4enEZ_mw0-NGBl_bUw 提取码: e8gs (定时更新最新版本)
1点击安装
2 修改路径 点下一步
3 等待安装完成,关闭界面
2安装STM32CubeMX
官网:www.st.com/stm32cubemx
百度云:
https://pan.baidu.com/s/1dm83PbIsq7Vk9bAyFNinag 提取码: wjmd
官网下载:
在官网下载需要注册下ST官网账号,目前最新为5.3.0版本,不想在官网下可以在百度云盘下载,
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和图形等等。
和标准库对比起来,STM32的HAL库更加的抽象,ST最终的目的是要实现在STM32系列MCU之间无缝移植,甚至在其他MCU也能实现快速移植。
并且从16年开始,ST公司就逐渐停止了对标准固件库的更新,转而倾向于HAL固件库和 Low-layer底层库的更新,停止标准库更新,也就表示了以后使用STM32CubeMX配置HAL/LL库是主流配置环境;
HAL库,有在线安装、离线安装两种方式。
在线安装
打开安装好的 STM32CubeMX 软件 点上面的Help -> Manage embedded software packages
会跳出来一个选择型号界面 勾选上你要安装的HAL库, 点击“Install Now” 直到安装成功。 如下图:
离线安装
离线安装需要下载安装包,这里提供百度云和ST官方下载方式 PS:建议在线安装 速度快,又稳定
官网:www.st.com/stm32cubemx
软件下载旁边一栏就是HAL库下载 下载对应芯片的安装包
百度云:
https://pan.baidu.com/s/1dm83PbIsq7Vk9bAyFNinag 提取码: wjmd
1直接导入安装包 Help -> Manage embedded software packages ->From Local 选择离线包即可
2直接解压
Help->Updater Settings... 可以选择HAL库安装包路径 ,默认在C盘 可以自行修改
解压到相对应路径即可
二、配置工程
- 打开Cube,选择对应芯片
- 配置下载线:下载接口SW
- 配置系统工作时钟:168MHZ
- 配置外部晶振
- 配置时钟树:
- 配置IO:
LED4—PB5---通用推挽输出
LED5—PB4
LED6—PB3
- 选择引脚功能:
- 配置具体引脚功能:
- 配置keil工程:
- 生成工程
可直接选择打开工程也可关闭后,在文件夹中手动打开
- 闪灯代码:
三、注意事项
(1)延时函数:可直接使用系统根据滴答定时器生成的HAL_Delay();
(2)中断的回调函数:
在CubeMX中配置的中断会在“stm32f4xx_it.c”中创建对应的中断服务程序,可在生成的函数预留位置处直接编程,如下:
也可找到对应的回调函数,重写回调函数进行编程:
重新写一个该函数即可,无需调用;
使用外设中断时:
CubeMX可以开启全局中断,NVIC分配优先级;
工程应用时:使能具体的中断操作,执行过中断任务后默认中断会关掉,需要做的是再次开启;如:串口接收中断
(3)代码编写区域,要在规定的范围内,否则重新生成的代码将会覆盖编写的代码,如:
/* USER CODE BEGIN 2 */
UASRT1_Init();
printf("初始化完成");
/* USER CODE END 2 */
猜你喜欢
- 2025-05-23 嵌入式开发丨51、STM32、Linux点灯的区别
- 2025-05-23 【基础】STM32F103C8T6制作舵机测试仪详细图文教程
- 2025-05-23 利用Proteus仿真STM32实现DHT11温湿度检测
- 2025-05-23 《GD32开发实战指南》第13章 DAC
- 2025-05-23 51-FORTH(1): 8051计算机诞生记
- 2025-05-23 _attribute__((weak))关键字如何使用?
- 2025-05-23 终极调试利器,各种Link通吃
- 2025-05-23 循环队列原理及在单片机串口通讯中的应用(二)
- 2025-05-23 超详细的FreeRTOS移植全教程——基于stm32
- 2025-05-23 我只用了十分钟:将RT-Thread移植到了新唐新款单片机上
- 05-24高中数学解题分析方法及知识点
- 05-24C/C++编程笔记:无法在C++中重载的函数,六种方式
- 05-24面试与实战:什么是 Lambda?该如何使用?
- 05-24设计模式之单件模式
- 05-24Axon Framework - 模型- 聚合
- 05-24自动化利器Python类实例方法、静态方法和类方法的区别和用法
- 05-24嵌入式开发必看!面向过程VS面向对象,哪种更适合你的项目?
- 05-24Python:深度剖析实例方法、类方法和静态方法的区别
- 最近发表
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- chromepost (65)
- c++int转char (75)
- static函数和普通函数 (76)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- linux删除一个文件夹 (65)
- mac安装java (72)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)