STM32开发实战系列1-照亮世界第一盏灯

举报
神龙居市 发表于 2022/02/22 15:45:29 2022/02/22
【摘要】 每学一门新编程语言,都喜欢用“Hello World”来昭告天下。在硬件开发板的学习上,我想应该是点亮一盏LED来表示。点亮LED需要了解GPIO。1.GPIO接口简介通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作...

每学一门新编程语言,都喜欢用“Hello World”来昭告天下。在硬件开发板的学习上,我想应该是点亮一盏LED来表示。

点亮LED需要了解GPIO。

1.GPIO接口简介

  • 通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。

2.STM32F0核心板接线图

开发过程是第一步要了解开发板和电气元件的接线情况,了解GPIO引脚。

从接线上看底板上的LED4、3、2分别接到了核心板的PB0、1、2.只要给PB0、1、2给相应的电平信号就可以控制LED。

3.新建项目

开发过程,如果每行代码自己写那真是要累死了,既然咱安装了开发环境,就借助工具帮助完成。

第一步需要用CubeMX设计工具,也就是搭建硬件的初始化环境,和自定义端口特性,通过图形界面就可以把大部分代码写好了。

通过选择MCU来创建项目

在Part Number中输入MCU型号STM32051K8,然后在右侧选择具体的型号双击或者点击右上角的Start Project创建一个空项目

出现在Pinout view区域的就是CPU控制的引脚,因为我们要控制LED电平,所以PB0、1、2引脚是输出的,在引脚上点击鼠标左键,在弹出的菜单上选择GPIO_Output。

4.Project Manager导出

在Project tab上输入Project Name,并选择Project Location(注意不要有中文路径)。

Toolchain/IDE选择MDK-ARM。

切换到Code Generator页面 选择图中的选项,然后导出项目

最后通过Generate code生成Keil代码项目。生成成功,会提示打开项目,直接点击Open Project,会启动keil

5.编辑代码

打开工程可以看到项目结构,其中的GPIO初始化,main方法基本方法的调用都是完整的。

下面要做到就是对LED定义的引脚进行高低电平控制,让神灯闪烁。

main方法里面有while方法,添加业务代码

代码中有固定注释,USER Code要写到对应的位置,如果通过CubeMX重新设计和生成代码,这些User Code将会被保留,如果代码位置不在begin和end中间,可能会被删除。

HAL_GPIO_WritePin函数是向指定的GPIO写入高低电平,每500毫秒变换一次,用来查看闪烁

 /* USER CODE BEGIN WHILE */
  while (1)
  {
		HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_RESET);
		
		HAL_Delay(500);
		
		HAL_GPIO_WritePin(GPIOB,  GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2, GPIO_PIN_SET);
		
		HAL_Delay(500);
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

6.运行程序

对工程编译和下载到开发板,然后重启开发板,就看到了led灯闪烁。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。