其他分享
首页 > 其他分享> > STM32CubeMX安装搭建环境、编译烧写流水灯

STM32CubeMX安装搭建环境、编译烧写流水灯

作者:互联网

STM32CubeMX安装搭建环境、编译烧写流水灯

文章目录

一、STM32CubeMX的环境搭建

(一)安装STM32CubeMX

官网下载:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-configurators-and-code-generators/stm32cubemx.html
安装过程

以管理员身份运行并安装SetupSTM32CubeMX-6.3.0-Win
在这里插入图片描述
勾选I accept the terms…
在这里插入图片描述
两项都勾选
在这里插入图片描述
设置安装目录,点击Next后会出现一个窗口,点击确定就行
在这里插入图片描述
在这里插入图片描述
等待安装,完成
在这里插入图片描述

(二)固件库的安装

点击 Help 然后点击Manage embedded software paclages
在这里插入图片描述
找到STM32F1,选择最新版,然后点击Install Now
在这里插入图片描述

二、用STM32CubeMX生成工程文件

打开STM32CubeMX,点击New Project建立新工程
在这里插入图片描述

(一)选择MCU和封装

这里我选的是STM32F103C8,然后选择又下脚的文件双击
在这里插入图片描述

(二)配置时钟

首先我们来配置时钟,RCC 设置,选择 HSE(外部高速时钟) 为 Crystal/Ceramic Resonator(晶振/陶瓷谐振器)
在这里插入图片描述
选择 Clock Configuration,配置系统时钟 SYSCLK 为 72MHz
修改 HCLK 的值为 72 后,输入回车,软件会自动修改所有配置
在这里插入图片描述

(三)配置调试模式

SYS 设置,选择 Debug 为 Serial Wire
在这里插入图片描述

(四)配置GPIO

GPIO 设置,在右边图中找到 LED 灯对应引脚,选择 GPIO_Output,这里我选的PB7、PB8、PB9为LED的端口
在这里插入图片描述
点击User给管脚命名
在这里插入图片描述

(五)代码生成

在project manager下输入项目名和项目路径,选择应用的 IDE 开发环境 MDK-ARM V5
在这里插入图片描述
点击GENERATE CODE生成
在这里插入图片描述

三、填写main函数

在生成文件后,点击打开项目。
打开文件我们会发现main函数里只有一些初始化,并没有主要的程序,while(1)里面是空的,这时候需要我们来添加代码 。
在这里插入图片描述
下面添加三个流水灯交替闪烁的代码,代码如下:

        HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);//将PB7设置为高电平
		HAL_Delay(100);\\延时
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET);//将PB7设置为低电平
		HAL_Delay(100);\\延时
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_SET);//将PB8设置为高电平
		HAL_Delay(100);\\延时
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_8,GPIO_PIN_RESET);//将PB8设置为低电平
		HAL_Delay(100);\\延时
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//将PB9设置为高电平
		HAL_Delay(100);\\延时
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//将PB9设置为低电平
		HAL_Delay(100);\\延时

自动生成的代码是由HAL库版本的代码,这里添加的代码是其中的函数
延时函数(HAL_Delay)
函数原型: void HAL_Delay (__IO uint32_t Delay)
参数说明:Delay表示所要延时的时间大小,单位是毫秒
写管脚函数(HAL_GPIO_WritePin)
函数原型:void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx, uint16_t
GPIO_Pin, GPIO_PinState PinState)
参数说明:
GPIOx: 管脚组(x的取值为A~G)
GPIO_Pin: 管脚编号(x的取值为0~15)
PinState: 管脚的状态(取值为GPIO_BIT_RESET表示0, GPIO_BIT_SET表示1)

四、编译与仿真运行

点击编译,没有错误
在这里插入图片描述
下面进行输出波形图仿真,首先进行一些设置
Target下的设置如图
在这里插入图片描述
Debug下更改如下:

Dialog.DLL下改为DARMSTM.DLL,Parameter下改为-pSTM32F103C8
在这里插入图片描述
配置好后,点击Debug

在这里插入图片描述
点击下图所示按键
在这里插入图片描述
点击左上角setup,弹出对话框,添加需要查看的波形的的引脚,点击右上角的添加输入

输入

GPIOB_IDR.7
GPIOB_IDR.8
GPIOB_IDR.9

信号输出类型选择bit
在这里插入图片描述
点击左上角的run开始仿真运行
在这里插入图片描述
运行效果如下,说明代码正确
在这里插入图片描述

五、烧写与硬件实现

用FlyMcu进行烧写
在这里插入图片描述
运行效果如图
在这里插入图片描述

六、总结

通过本次实验,了解了使用STM32CUBEMX生成工程,这更简单。不用去查表了。同时做的过程也更轻松,错误更少。

七、参考文献

https://blog.csdn.net/Mouer__/article/details/120872654?spm=1001.2014.3001.5501
https://blog.csdn.net/m0_58414679/article/details/120903629?spm=1001.2014.3001.5501

标签:HAL,PIN,STM32CubeMX,Delay,编译,点击,烧写,GPIO
来源: https://blog.csdn.net/weixin_49012924/article/details/120933093