当前位置:   article > 正文

安装 stm32CubeMX,用cubemx完成初始化过程,采用HAL库编程实现流水灯、并在Keil下用软件仿真运行_stm32 cubemx安装

stm32 cubemx安装


一、stm32CubeMX安装

1、下载工具

链接:stm32CubeMX
提取码:swsj

2、安装流程

  1. 以管理员身份运行安装包
    在这里插入图片描述

  2. 点击next
    在这里插入图片描述

  3. 勾选然后next
    在这里插入图片描述

  4. 勾选第一个然后next
    在这里插入图片描述

  5. 选择安装目录
    在这里插入图片描述

  6. 点击next
    在这里插入图片描述

  7. 等待安装即可
    在这里插入图片描述

3、安装HAL库

1、HAL库下载

1.打开安装好的 stm32CubeMX,选择Manage embedded software packages。
在这里插入图片描述
2、选择相对应的HAL库文件,然后点击install now下载
在这里插入图片描述

2、创建一个项目

在这里插入图片描述
1、选择芯片型号,点击start projec
在这里插入图片描述

2、配置
在这里插入图片描述

  • 设置时钟

在这里插入图片描述

在这里插入图片描述

  • 设置引脚

在右边芯片点击相对应的引脚,将其设置为output

在这里插入图片描述

  • 配置文件名和路径

在这里插入图片描述

  • 点击generate code,选择open project,然后就到KEIL5(open打不开就关掉打开之前选择的路径)

在这里插入图片描述

二、keil进行仿真实验

1.打开.uvprojx文件

打开之前选择的路径去找。
在这里插入图片描述

  • 双击打开,点击main
    在这里插入图片描述
    把下面函数写入main.c的main函数中
 SystemClock_Config();//系统时钟初始化
  MX_GPIO_Init();//gpio初始化
  while (1)
  {		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);//PA4亮灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(1000);//延时1s
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA4熄灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_RESET);//PB9亮灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_SET);//PC15熄灯
		HAL_Delay(1000);//延时1s		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);//PA4熄灯
		HAL_GPIO_WritePin(GPIOB,GPIO_PIN_9,GPIO_PIN_SET);//PB9熄灯
		HAL_GPIO_WritePin(GPIOC,GPIO_PIN_14,GPIO_PIN_RESET);//PC15亮灯
		HAL_Delay(1000);//延时1s
	}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

2、编译烧录

在这里插入图片描述

  • 编译成功,下一步进行烧录,效果如下:

HAL_LED

3、虚拟逻辑分析仪观察

1、设置仿真

  • 选择跟正确的晶振大小,否则时间不对引起波形不对。在这里插入图片描述
    在这里插入图片描述

注意;下面的两个框框改成芯片型号。CPU DLL那里要写入SARMCM3.DLL,不然会弹出警告。

  • 点击小红圈进行调试
    在这里插入图片描述

2、观察波形图

  • 点击逻辑分析仪对波形进行查看
    在这里插入图片描述

  • 点击Setup Logic Analyzer,然后选择引脚,进行观察

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

  • 怎么确定“&”的数应该是多少,可以参考下面各pin号的值:
#define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
#define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
#define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
#define GPIO_Pin_3                 ((uint16_t)0x0008)  /*!< Pin 3 selected */
#define GPIO_Pin_4                 ((uint16_t)0x0010)  /*!< Pin 4 selected */
#define GPIO_Pin_5                 ((uint16_t)0x0020)  /*!< Pin 5 selected */
#define GPIO_Pin_6                 ((uint16_t)0x0040)  /*!< Pin 6 selected */
#define GPIO_Pin_7                 ((uint16_t)0x0080)  /*!< Pin 7 selected */
#define GPIO_Pin_8                 ((uint16_t)0x0100)  /*!< Pin 8 selected */
#define GPIO_Pin_9                 ((uint16_t)0x0200)  /*!< Pin 9 selected */
#define GPIO_Pin_10                ((uint16_t)0x0400)  /*!< Pin 10 selected */
#define GPIO_Pin_11                ((uint16_t)0x0800)  /*!< Pin 11 selected */
#define GPIO_Pin_12                ((uint16_t)0x1000)  /*!< Pin 12 selected */
#define GPIO_Pin_13                ((uint16_t)0x2000)  /*!< Pin 13 selected */
#define GPIO_Pin_14                ((uint16_t)0x4000)  /*!< Pin 14 selected */
#define GPIO_Pin_15                ((uint16_t)0x8000)  /*!< Pin 15 selected */
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 点击In或Out将Grid设置为1s,然后把后面两个勾上。

在这里插入图片描述

  • 点击运行

在这里插入图片描述

  • 由下图可知一个闪烁周期为3s,那么每个灯的闪烁时间为1s。
    在这里插入图片描述

三、总结

使用stm32CubeMX进行开发相对于寄存器操作简直不要太舒服,效果又好。还可以使用keil对引脚进行波形观察,受益匪浅。

四、参考资料

https://blog.csdn.net/wei348144881/article/details/108715684
https://blog.csdn.net/weixin_46129506/article/details/120780184

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/220081
推荐阅读
相关标签
  

闽ICP备14008679号