STM32CubeMX 是 Java 实现的,需要安装 JDK 环境。
jdk11-Windows版本下载链接:https://www.oracle.com/java/technologies/downloads/#java11-windows
STM32CubeMX 官网下载地址:https://www.st.com/en/development-tools/stm32cubemx.html
~下载软件需要填写姓名和邮箱地址,注意:姓名可以随便填一个,电子邮箱一定要填可以收到邮件的真实邮箱地址。
(部分浏览器存在点击下载没反应的问题,换一个浏览器就可以解决了)
~安装固件库,不同芯片选择相对应的库。打开STM32CubeMX程序,点击ACCESS TO MCU SELECTOR即可。
~点击Help,然后选择Manage embedded software packages。
~这里选择芯片类型是STM32F1,然后选择1.8.4版本下载,再点击 Install Now。
在 Home 界面,开始建立工程。
~在 Part Number 里选择STM32F103C8芯片,右边会出现芯片信息,选中芯片后,双击进入工程。
~在 Pinout &Configuration 里,点击SYS,Debug这里选择Serial Wire。
~点击RCC进行设置,外部高速时钟HSE选择 Crystal/Ceramic Resonator。
~在 Cook Configuration 里,按照下面方式将 STM32 最高时钟调为72M。
~在pinout中,点击Connectify ,选择 USART1,模式选择 Asynchronous,完成配置。
点击GPIO,点击管脚 PA5,在菜单中选择 GPIO_Output,依次配置其他引脚,PB0 、PC14和PA5一样。在左侧的 GPIO 中看到每个管脚的位置,输出模式output level选择High高电平。
~在 Project Manager 界面中选择 Project ,选择要保存的过程文件地址,因为使用Keil5来编译,所以选择MDK—ARM,V5。
~在 Code Gendertor 中,勾选“Generate peripheral initialization as a pair of ‘.c/.h’ files per peripheral”。
~最后点击 GENERATE CODE ,生成对应的工程文件,并点击 Open Project 通过 Keil5 自动打开工程。
也可以打开保存的工程文件,点击MDK-ARM文件,打开对应keil文件即可。
打开Keil文件后点击Application,在 main.c 文件里的 while(1) 循环内添加以下代码。
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(100) ;//100ms
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(100) ;//100ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET);
HAL_Delay(100) ;//100ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
HAL_Delay(100) ;//100ms
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);
HAL_Delay(100) ;//100ms
HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);
HAL_Delay(100) ;//100ms
~点击output,勾选Create HEX File,这样可以生成hex文件。
烧录还是使用 mcuisp 软件,操作过程和流水灯效果和本人上篇博客一致,可参考。
上篇博客链接:https://blog.csdn.net/qq_45930985/article/details/120938763?spm=1001.2014.3001.5501
在没有示波器条件下,这里要使用Keil的软件仿真逻辑分析仪功能来观察管脚的时序波形。
~点击魔法棒,将 Target 界面的 Xtal 改为72MHz。
~设置 Debug,将图中的红框中选项修改,修改完点击OK。
~点击 View 菜单,再选择"Symbols Window" 选项,就打开了 Symbols Window 窗口。
~这里选择将GPIOA_IDR、GPIOB_IDR、GPIOC_IDR拖入到逻辑分析仪里。
~点击 “Setup”,将3个管脚的 Display Type 改为 Bit ,然后点击 Close。
分析观察3个 GPIO 端口输出的波形,发现他们的电位变化与之前代码执行的实际效果一致;但是仿真的波形周期和实际上流水灯闪烁周期有一定程度上的差别,但是差距不大。
这一次实验相较于上一次流水灯实验,就多了一个STM32CubeMX软件。用这个软件来进行流水灯代码编译,的确更简单一些。并且使用STM32CubeMX也给我开拓不一样的实验方法,结合这个实验和上个实验,可以说是条条大路通罗马,只是说有些路会难走一些,但是最终都会有所收获。
1、https://blog.csdn.net/qq_43279579/article/details/112213196
2、https://blog.csdn.net/qq_43279579/article/details/112233696
3、https://blog.csdn.net/Greider/article/details/117389799