STM32CubeMX+Keil使用HAL库点灯

文章目录

  • 一. CubeMX的安装
  • 二. 用CubeMX新建工程点亮LED灯
      • 1. STM32CubeMX生成工程文件
      • 2. 配置引脚
      • 3. 配置时钟
      • 4. 配置调试模式
      • 5. 工程管理
      • 6. 添加代码
      • 7. 硬件的烧录
  • 三. keil观察GPIO端口的输出波形
      • 1. 设置仿真模式
      • 2. 使用逻辑分析仪
  • 四. 总结
  • 五. 参考文献

一. CubeMX的安装

STM32CubeMX 是 ST 意法半导体近几年来大力推荐的STM32 芯片图形化配置工具,目的就是为了方便开发者,允许用户使用图形化向导生成C 初始化代码,可以大大减轻开发工作,时间和费用,提高开发效率。STM32CubeMX几乎覆盖了STM32全系列芯片

  • 安装CubeMx需要:JRE (Java Runtime Environment)、 STM32CubeMXHAL库

1. 安装JRE
官网:https://www.java.com/en/download/manual.jsp

  • 进入官网,下载安装包,然后运行exe文件
    STM32CubeMX+Keil使用HAL库点灯_第1张图片
  • 更改目标文件夹,点击安装
    STM32CubeMX+Keil使用HAL库点灯_第2张图片
  • 修改路径,点击下一步
    STM32CubeMX+Keil使用HAL库点灯_第3张图片
  • 等待安装完成,点击关闭
    STM32CubeMX+Keil使用HAL库点灯_第4张图片
    安装成功!

2. 安装STM32CubeMX
官网:www.st.com/stm32cubemx
STM32CubeMX+Keil使用HAL库点灯_第5张图片

  • 下载完后打开安装包,之后一直next,最后进行安装
    STM32CubeMX+Keil使用HAL库点灯_第6张图片
    安装成功!

3. 安装HAL库

什么是HAL固件库?
STM32 HAL固件库是Hardware Abstraction Layer的缩写,中文名称是:硬件抽象层。HAL库是ST公司为STM32的MCU最新推出的抽象层嵌入式软件,为更方便的实现跨STM32产品的最大可移植性。HAL库的推出,可以说ST也慢慢的抛弃了原来的标准固件库,这也使得很多老用户不满。但是HAL库推出的同时,也加入了很多第三方的中间件,有RTOS,USB,TCP/ IP和图形等

  • 打开安装好的 STM32CubeMX 软件 ,点击上面的Help -> Manage embedded software packages
    STM32CubeMX+Keil使用HAL库点灯_第7张图片
  • 勾选上STM32F1, 点击“Install Now” 进行安装
    STM32CubeMX+Keil使用HAL库点灯_第8张图片
  • 出现绿色表明安装成功
    STM32CubeMX+Keil使用HAL库点灯_第9张图片

二. 用CubeMX新建工程点亮LED灯

1. STM32CubeMX生成工程文件

  • 打开STM32CubeMX,File-->New Project建立新工程
    STM32CubeMX+Keil使用HAL库点灯_第10张图片
  • 搜索选择芯片STM32F103C8
    STM32CubeMX+Keil使用HAL库点灯_第11张图片
  • 创建工程
    STM32CubeMX+Keil使用HAL库点灯_第12张图片

2. 配置引脚

  • 把目标LED对应引脚设置为GPIO_Output即可,我选择的引脚是PA5,PA6,PA7
    STM32CubeMX+Keil使用HAL库点灯_第13张图片

3. 配置时钟

  • 配置RCC使用外部时钟源
    STM32CubeMX+Keil使用HAL库点灯_第14张图片
  • 选择 Clock Configuration,配置系统时钟 SYSCLK 为 72MHz
    修改 HCLK 的值为 72 后回车,软件会自动修改所有配置
    STM32CubeMX+Keil使用HAL库点灯_第15张图片

4. 配置调试模式

  • SYS设置,选择Debug为 Serial Wire
    STM32CubeMX+Keil使用HAL库点灯_第16张图片

5. 工程管理

  • 设置完MCU后,对工程文件进行配置
    Project Manager处,是工程的各种配置,我们只用到有限几个,其他的默认
    注意 存储目录不可以有中文
    STM32CubeMX+Keil使用HAL库点灯_第17张图片
  • 点击GENERATE CODE创建工程,选择Open Folder
    STM32CubeMX+Keil使用HAL库点灯_第18张图片
  • 成功打开了工程文件
    STM32CubeMX+Keil使用HAL库点灯_第19张图片

6. 添加代码

  • 在文件中打开LED1.uvprojx
    STM32CubeMX+Keil使用HAL库点灯_第20张图片
  • 在main.c文件的main函数下的while循环中,添加下面几行代码

      HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
	  HAL_Delay(1000);

	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_SET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_RESET);
	  HAL_Delay(1000);
	  
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,GPIO_PIN_RESET);
	  HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,GPIO_PIN_SET);
	  HAL_Delay(1000);

STM32CubeMX+Keil使用HAL库点灯_第21张图片

  • 使用HAL库进行开发提供了一些相关函数进行使用
函数类型 函数原型 参数说明
延时函数(HAL_Delay) void HAL_Delay (__IO uint32_t Delay) Delay表示所要延时的时间大小,单位是毫秒
管脚函数(HAL_GPIO_WritePin) void HAL_GPIO_WritePin (GPIO_TypeDef * GPIOx, uint16_tGPIO_Pin, GPIO_PinState PinState) GPIOx: 管脚组(x的取值为A~G);GPIO_Pin: 管脚编号(x的取值为0~15);PinState: 管脚的状态(取值为GPIO_BIT_RESET表示0, GPIO_BIT_SET表示1)

7. 硬件的烧录

  • 电路连接好后,打开FlyMcu进行烧录
    STM32CubeMX+Keil使用HAL库点灯_第22张图片

  • 运行结果如下图

三. keil观察GPIO端口的输出波形

1. 设置仿真模式

  • 打开魔法棒,在Debug下进行下列设置,然后OK
    STM32CubeMX+Keil使用HAL库点灯_第23张图片

2. 使用逻辑分析仪

  • 编译后点击Dubug进入调试界面,并打开逻辑分析仪
    STM32CubeMX+Keil使用HAL库点灯_第24张图片

  • 点击Setup Logic Analyzer
    STM32CubeMX+Keil使用HAL库点灯_第25张图片

  • 添加引脚
    添加IO口的方法:输入GPIOX_IDR.X,内容取决于代码中定义的管脚,然后回车
    STM32CubeMX+Keil使用HAL库点灯_第26张图片

  • 设置好之后,逻辑分析仪左侧会出现刚才设置的两个IO口,点击全速运行
    STM32CubeMX+Keil使用HAL库点灯_第27张图片

  • 执行一段时间后,点击停止按钮即可
    在这里插入图片描述

  • 得到的波形图如下:
    STM32CubeMX+Keil使用HAL库点灯_第28张图片

观察每次变化的时间,发现周期正好为1s,与实际相符合。

四. 总结

本文学习使用STM32CubeMX软件以及Keil仿真的逻辑分析仪,掌握STM32CubeMX软件后,我们不再需要配置管脚,比寄存器的查表配置管脚更加方便,有利于进行单片机的实践操作。

五. 参考文献

CubeMX安装
基于HAL库
CubeMX基本使用

你可能感兴趣的:(stm32,单片机,嵌入式硬件)