文章目录
一、Java环境准备
(1)下载JDK
STM32CubeMX 是 Java 实现的,需要安装 JDK 环境。
jdk11-Windows版本下载链接:https://www.oracle.com/java/technologies/downloads/#java11-windows
打开官网后选择Windows版本的第二个下载。
(2)安装JDK环境
~打开安装按照指示点击下一步。
~根据自己的需要更改文件下载地址,之后点击下一步。
~安装完成,点击关闭。
二、安装STM32CubeMX
(1)STM32CubeMX的下载
STM32CubeMX 官网下载地址:https://www.st.com/en/development-tools/stm32cubemx.html
~打开网址后选择Windows的版本下载。
~这里选择最新的版本6.30。
~点击下载后会出现许可协议,点击接受。
~下载软件需要填写姓名和邮箱地址,注意:姓名可以随便填一个,电子邮箱一定要填可以收到邮件的真实邮箱地址。
(部分浏览器存在点击下载没反应的问题,换一个浏览器就可以解决了)
~打开邮箱中收到的邮件,点击立即下载。
(2)STM32CubeMX的安装
~将下载的安装包解压,点击右键以管理员身份运行安装程序。
~点击Next。
~勾选我同意,然后点击Next。
~勾选“l have read…”,然后点击Next。
~选择文件的下载目录,然后点击Next。
~等待安装,进度条完了后点击Next。
~点击Done,完成安装。
~安装固件库,不同芯片选择相对应的库。打开STM32CubeMX程序,点击ACCESS TO MCU SELECTOR即可。
~点击Help,然后选择Manage embedded software packages。
~这里选择芯片类型是STM32F1,然后选择1.8.4版本下载,再点击 Install Now。
三、使用STM32CubeMX生成代码
在 Home 界面,开始建立工程。
(1)工程创建
~点击File,选择New Pioject,创建新工程。
~在 Part Number 里选择STM32F103C8芯片,右边会出现芯片信息,选中芯片后,双击进入工程。
(2)配置外设
~在 Pinout &Configuration 里,点击SYS,Debug这里选择Serial Wire。
~点击RCC进行设置,外部高速时钟HSE选择 Crystal/Ceramic Resonator。
(3)配置时钟
~在 Cook Configuration 里,按照下面方式将 STM32 最高时钟调为72M。
~在pinout中,点击Connectify ,选择 USART1,模式选择 Asynchronous,完成配置。
(4)配置GPIO
点击GPIO,点击管脚 PA5,在菜单中选择 GPIO_Output,依次配置其他引脚,PB0 、PC14和PA5一样。在左侧的 GPIO 中看到每个管脚的位置,输出模式output level选择High高电平。
(5)工程设置
~在 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文件即可。
四、使用Keil5编译
(1)修改函数
打开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
放入函数中如下图所示:
(2)编译
~点击魔法棒进行设置修改。
~点击output,勾选Create HEX File,这样可以生成hex文件。
~点击编译,生成 hex 文件。
五、运行效果
烧录还是使用 mcuisp 软件,操作过程和流水灯效果和本人上篇博客一致,可参考。
上篇博客链接:https://blog.csdn.net/qq_45930985/article/details/120938763?spm=1001.2014.3001.5501
六、Keil5仿真观察管脚时序波形
在没有示波器条件下,这里要使用Keil的软件仿真逻辑分析仪功能来观察管脚的时序波形。
(1)调整配置
~点击魔法棒,将 Target 界面的 Xtal 改为72MHz。
~设置 Debug,将图中的红框中选项修改,修改完点击OK。
(2)调试并观测波形
~进入调试界面,点击 Debug,进入调试。
~选择逻辑分析仪,点击Analysls windows。
~点击 View 菜单,再选择"Symbols Window" 选项,就打开了 Symbols Window 窗口。
~这里选择将GPIOA_IDR、GPIOB_IDR、GPIOC_IDR拖入到逻辑分析仪里。
~点击 “Setup”,将3个管脚的 Display Type 改为 Bit ,然后点击 Close。
~点击左上角的 Run 进行全速运行。
~现在就可以看到3个GPIO端口的输出电平。
(3)分析波形
分析观察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