基于STM32CubeMX实现流水灯(库函数)

一、STM32CubeMX介绍

STM32CubeMX是一个图形工具,它允许STM32微控制器和微处理器的一个非常简单的结构,以及用于将臂对应的初始化的C代码的生成®皮质® -M芯或部分的Linux ®设备树对臂®皮质® -一个核心,通过一个循序渐进的过程。 

第一步包括选择 STMicrolectronics STM32 微控制器、微处理器或与所需外设集相匹配的开发平台,或在特定开发平台上运行的示例。
微处理器,所述第二步骤允许任一配置的GPIO和时钟设置为整个系统,并以交互的外围设备分配到所述臂®皮质® -M或到皮质®-一个世界。特定的实用程序,例如 DDR 配置和调整,可以轻松开始使用 STM32 微处理器。对于 Cortex ® -M 内核,配置包括与为微控制器描述的步骤完全相似的附加步骤。
对于微控制器和微处理器 Arm ® Cortex ® -M,第二步是配置每个所需的嵌入式软件,这要归功于引脚分配冲突求解器、时钟树设置助手、功耗计算器和用于配置外设的实用程序(例如 GPIO 或 USART)和中间件堆栈(例如 USB 或 TCP/IP)。
得益于增强的 STM32Cube 扩展包,可以扩展默认软件和中间件堆栈。STMicrolectronics 或 STMicrolectronics 的合作伙伴包可以直接从 STM32CubeMX 内提供的专用包管理器下载,而其他包可以从本地驱动器安装。
此外,STM32CubeMX 交付中的独特实用程序 STM32PackCreator 可帮助开发人员构建自己的增强型 STM32Cube 扩展包。
最终,用户启动与所选配置选项相匹配的生成。此步骤为 Arm ® Cortex ® -M提供初始化 C 代码,准备在多个开发环境中使用,或为 Arm ® Cortex ® -A提供部分 Linux ®设备树。 STM32CubeMX 在 STM32Cube 内交付。

二、STM32CubeMx实现流水灯 

1、STM32CubeMX模块配置

初次使用该软件时需要下载自己所需要的芯片模块。

进入芯片模块,选择STM32F1系列,下载对应的最新资源包,然后下载(由于我之前已经下载过,所以显示的是灰色)

 最后点击close,选择MCU SELECTOR。

 等待下载

左上角搜索STM32F103c8芯片,点击 MCUs,然后start projects。

这里选择PLLCLK 。

 点击RCC,选择CRYstal/Ceramic Resonator

 点击GPIO,在芯片上直接选择对应的管脚,左键,然后OUTPUT

 将每个管脚都设为high。

然后进入Project Manager界面;输入你的项目名称和你项目要保存的地址;将IDE那项改为MDK-ARM。

 点击COde Generator,选择所示红框;最后点击GENERATE CODE。

 2、代码编写

进入你创建后的工程,如下图所示。然后找到main文件,滑到主函数那一部分;在while循环中编写你的程序。

 上面这些绿色的就是一些说明,而除了while循环那一段,其他都是刚刚通过STM32CubeMX生成的代码。

 在while那一段贴上自己的代码:

  SystemClock_Config();
  MX_GPIO_Init();
  while (1)
  {		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
		HAL_Delay(500);
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
		HAL_Delay(500);	
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_RESET);
		HAL_Delay(500);
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_3,GPIO_PIN_SET);
		HAL_Delay(500);
		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
		HAL_Delay(500);
		
		HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
		HAL_Delay(500);
		
  }

编译就可以了。

三、示波器观察以及文件烧录 

示波器观察具体步骤可以参照我上一篇博客,这里就直接展示结果了:

文件烧录,在上一篇博客我也有说明,所以就直接展示最后的结果:

四、总结 

通过与之前直接调用寄存器来点亮LED灯作对比,发现采用库函数的方式在代码编写上真的是省了很大一笔力气,同时利用库函数可以简单地实现LED灯周期的闪烁,这与寄存器相比,要好的很多。。总的来说,使用库函数减轻了我们的代码压力,但有利必有弊,库函数的大量使用会使我们对于寄存器方法逐渐遗忘,从而不了解其工作的原理;这对于其他不能使用库函数的芯片来说,无疑是一种灾难性的问题。

五、参考链接

 小白学ARM实操三:基于STM32F103流水灯的实现(寄存器版)_Lc-Yusheng的博客-CSDN博客

  • 1
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值