STM32CubeMX+Keil实现LED灯点亮实验

一、STM32CubeMX的环境搭建

1、安装JRE

由于 STM32CubeMX 软件是基于 JAVA 环境运行的,所以需要安装 JRE (Java Runtime Environment)才能使用
官网:https://www.java.com/en/download/manual.jsp

  • 点击下载

在这里插入图片描述

  • 点击安装
    在这里插入图片描述

  • 修改路径
    在这里插入图片描述

  • 等待安装完成

在这里插入图片描述

  • 安装完成
    在这里插入图片描述
  • 检测安装是否完成

进入命令行,检测java版本,出现下图情况即安装成功。
在这里插入图片描述

2、安装STM32CubeMX

官网下载:https://www.st.com/en/development-tools/stm32cubemx.html?sc=stm32cubemx

在这里插入图片描述

  • 打开安装包
    在这里插入图片描述
  • 点击next
    在这里插入图片描述
  • 勾选accept,点击next

在这里插入图片描述

  • 勾选第一个,再点击next
    在这里插入图片描述

  • 选择你的安装路径,再点击next
    在这里插入图片描述

注意:上面的安装路径里面的文件夹必须是空的

点YES 这句话是安装本软件可能会与文件夹之前文件冲突,导致文件夹之前文件丢失 是否继续

  • 点继续即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 安装完成,退出
    在这里插入图片描述

3、安装HAL库

STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。

  • 打开STM32CubeMX软件,点击help->Manage embedded software packages
    在这里插入图片描述
  • 勾选上你要安装的HAL库, 点击Install Now 直到安装成功
    在这里插入图片描述

我们选择最新版本点击install now,from local是本地下载,一般适用于提前有固态件的,新手选择install now。

  • 出现小绿点,表示安装成功了。

在这里插入图片描述

二、STM32CubeMX实现流水灯

1、新建工程

在这里插入图片描述

2、配置环境

  • part name输入自己的芯片,我这里是STM32F103C8。
  • 点击右下方的封装模式,我这里是LQFP48。
  • 点击start project,即可开始工程项目。

在这里插入图片描述

  • 点击System Core。
  • 进入里面的SYS。
  • debug那里选择Serial Wire。
    在这里插入图片描述

3、时钟配置

配置时钟了,进入上面的Clock Configuration,有两个时钟,一个是hse和lse,我们要用是GPIO接口,而这些接口都在APB2里。
在这里插入图片描述

  • 将hse那里设为Crystal/Ceramic Resonator。
    在这里插入图片描述

4、引脚设置

  • output那一项选择PA7,PB9,PC15。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 点击System core里的GPIO,把输出等级改为high。
    在这里插入图片描述

  • 点击project manager

  • 配置路径

  • 修改项目名

  • IDE修改为MDK-ARM
    在这里插入图片描述

  • 进入code generate界面

  • 选择生成初始化.c/.h文件

  • 点击generate code
    在这里插入图片描述

三、keil仿真调试并生成.hex文件

1、添加代码

  • 打开keil刚生成的项目
  • 将while循环代码加入到.c文件的主函数里面
SystemClock_Config();//系统时钟初始化
  MX_GPIO_Init();//gpio初始化
  while (1)
  {		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);//PA7亮灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);//PA7熄灯
		HAL_Delay(500);//延时0.5s		
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
		HAL_Delay(500);//延时0.5s
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_RESET);//PC15亮灯
		HAL_Delay(500);//延时0.5s
		
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_15,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(500);//延时0.5s
		
  }

2、编译程序

  • 编译结果无误

在这里插入图片描述

3、烧录代码

  • 打开FlyMcu,开始烧录代码
    在这里插入图片描述

注意:烧录代码时,boot0接1,boot1接0,USB上的RXD接芯片上的A9,TXD接芯片上的A10,以及USB上的电源和地都需要与芯片相连,芯片上的地和电源该在面包板上连通的也需要对应连通。

4、效果演示

接图如下:
在这里插入图片描述

在这里插入图片描述

  • 点灯显示

注意:连接情况与上面基本不变,仅仅将boot0接为0,否则灯不能亮。

接图如下:

在这里插入图片描述

在这里插入图片描述

四、Keil观察3个GPIO端口的输出波形

1、设置仿真模式

点击魔法棒,进入debug,进行如下图的配置:
在这里插入图片描述

2、使用逻辑分析仪

  • 点击logic analyzer,进入逻辑分析仪
    在这里插入图片描述
  • 点击setup,添加串口引脚
    在这里插入图片描述
  • 点击下图的添加串口,可以直接输入PORTX.Y,X是你的GPIO口号,Y是你的引脚号。

注意:你的display type一定都要改成bit。

在这里插入图片描述

  • 显示波形图操作,依次点击下两图符号。
    在这里插入图片描述
    在这里插入图片描述
  • 如果波形图不明显,可以试着调节,可以点击zoom下面的几个键进行调整。
  • 波形图显示如下:
    在这里插入图片描述

五、总结

第一次使用STM32CubeMX感觉效果挺佳,尤其是它的自动生成代码,给我们减轻了许多代码的烦恼,我们只需加入主函数代码即可,但关于他的一些配置我还不是很熟悉,需要慢慢摸索。

六、参考资料

[1]使用STMCubeMX生成代码(使用hal库)实现流水灯

[2]【STM32】STM32 CubeMx使用教程一–安装教程

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值