一、STM32cubemx介绍
STM32CubeMX是用于32位ARM®Cortex®STM32微控制器的图形工具。它是STMCube计划的一部分,既可以作为独立应用程序使用,也可以作为Eclipse插件用于集成到集成开发环境(IDE)中。
STM32CubeMX具有以下主要功能:
- 轻松选择微控制器,涵盖了整个STM32产品组合。
- 从STMicroelectronics板列表中选择板。
- 简单的微控制器配置(引脚,时钟树,外设,中间件)以及相应的初始化C代码的生成。
- 通过将先前保存的配置导入到新的MCU项目中,可以轻松切换到同一系列的另一个微控制器。
- 生成配置报告。
- 生成IDE就绪项目,以供选择集成开发环境工具链。STM32CubeMX项目包括生成的初始化C代码,STM32 HAL驱动程序,用户配置所需的中间件堆栈以及在所选IDE中打开和构建项目所需的所有相关文件。
- 用户定义的应用程序序列的功耗计算。
- 自我更新允许用户保持STM32CubeMX为最新。
二、初使用LED灯的点亮
重要的事情先说:路径中不能包含中文字符,否则会创建KEIL工程失败。
1.新建工程
2.选择芯片
我们选择proteus工程中有的芯片就可以,搜索后双击选择第二个。(矩形框内是封装方式)
界面的具体功能可以去官网下载用户手册(https://www.st.com/zh/development-tools/stm32cubemx.html#
)。
还有一篇文章略讲解了界面https://blog.csdn.net/ybhuangfugui/article/details/94363172
3.配置系统下载方式
第一个是调试接口,sw或者jtag(几种模式),具体的可以看一下芯片手册关于调试。
第二个是系统定时,用来产生通用的定时周期,芯片里有专门的中断来做,专实现的时候可以用系统时钟分频得到,也可以用固定的定时器分频。这个systick多数情况是提供给操作系统用属。
选择Categories下的SYS弹出右图所示的SYS Mode and Configuration界面,在如图所示的地方选择下载Debug方式,本次使用仿真的方式,所以Debug方式可以选择No Debug。
4.配置系统时钟
选择Categories下的RCC选择时钟源,可选择的时钟包括HSE和LSE,由于本次仿真中仅使用HSE时钟,所以仅对HSE时钟进行选择,选择Crystal/Ceramic Resonator外部时钟。
推荐文章https://jingyan.baidu.com/article/93f9803f7e6d48e0e46f55be.html
5.配置时钟树
选完时钟后,进入Clock Configuration界面进行时钟树配置,首先设置外部时钟源输入频率Input Frequency,然后选择PLL Source Mux的通道,最后双击HCLK频率,然后系统会自动配置成用于期望的时钟。
时钟树讲解https://www.cnblogs.com/wuguangzong/p/10887547.html
6.配置GPIO口功能
选择GPIO,左键单击PA1,选择GPIO_Output。
右键选择Enter user label为PA1设置标签。
接下来配置详细参数,左键单击红色箭头处。
将PA1配置为默认输出高电平,推挽输出模式,上拉,高速输出模式,引脚标识为LED1。
推荐文章https://blog.csdn.net/qq_38410730/article/details/79858906
7.输出配置工程
在强调一遍,路径中不能包含中文字符,否则会创建KEIL工程失败。
Project Name输入工程文件名LED
Project Location选择路径;
Toolchain/IDE选择预输出的IDE类型,使用的keil5所以选择MDK-ARM V5。
Code Generator中选中箭头所示位置。这样输出文件将包括.c和.h文件。最后点击生成代码。
8.生成的文件夹。
生成文件夹介绍https://blog.csdn.net/whalefall/article/details/80900670?utm_source=blogxgwz3
版权原因未复制图片,大家可以自己去对比看一下。
9.添加代码
进入MDK-ARM文件夹,打开keil工程,选择main.c。
在用户代码区添加以下代码,否则STM32CUBEMX改动后,代码将被清空。
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);//翻转电平(也可以通过setbits来实现)
HAL_Delay(100);
10.编译生成二进制文件
三、proteus仿真
1.新建工程file->new project
2.选择图纸大小,default就可以
3.原理图选择空工程,就像VC创建空的工程一样
4.由于使用CubeMX 和Keil联合对STM32进行仿真,所以无需用Proteus进行开发
5.点击P找我们需要的部件。
6.添加部件
7.添加电源
8.连线,将电阻10k改成10。
双击开发板,给开发板添加二进制文件。
此时会产生错误,原因是未设置电源造成。
选择菜单栏Design->Configure Power Rails
最后就能实现LED灯的闪烁。
参考资源
https://www.st.com/zh/development-tools/stm32cubemx.html#overview
https://www.cnblogs.com/Mr-Wangblogs/p/12683685.html
https://blog.csdn.net/qq_30839549/article/details/90301287
https://zhidao.baidu.com/question/1837139486527641380.html