STM32CubeMX安装搭建环境、编译烧写流水灯
文章目录
一、STM32CubeMX的环境搭建
(一)安装STM32CubeMX
以管理员身份运行并安装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