点亮LED-STM32电控学习笔记03

Robocon战队电控学习笔记03

day3:2022/9/21
【基本界面/结构】

在学习开始之前肯定要先了解我们开发的是个什么东西,每个部位是啥功能,这里我放几张官方(fuza)的图片

图一:C板基本接口
在这里插入图片描述

图二:Keil5软件页面
在这里插入图片描述

是不是要晕了,hhhh我也是,但是在慢慢学习的过程中,这些都能变成习惯一样的东西。

接下来呢,我们开始学习所有单片机的第一节实践课,那便是:点亮LED灯(因为这个最简单呜呜呜呜)通过点灯这个过程,要了解STM32CubeMx的配置,代码书写和烧录的基本过程,以及高低电平的概念和相关函数(先别晕,有个印象就行)
点灯之前要检查自己电脑的环境是否配置完成,否则可能出现代码出错,烧录失败等问题。下面我会放一个链接,里面是一些C板的学习资料
链接:https://pan.baidu.com/s/1OE8_yS87W40nj2fNI7sfQA
提取码:0000
接下来的学习都以这手册为例(这手册是好东西,但是有些地方写的太tm不友好了,小白容易在里面消磨信心~但是不慌好吧,啥玩意多啃几次就啃下来了)

首先我们要了解LED灯的构造

LED的全称是Light Emitting Diode,意思是发光二极管,所以本质上LED也属于二极管的一种,由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成,就拿普通的二极管来说,比如当我们给他加正向电压时,电阻很小,他就能导通,加反向电压的话,二极管的电阻就贼tnd大,这个二极管就会截止,电流很小,自然就看不到发光现象了。
在这里插入图片描述

接下来说下我们如何让LED灯亮起来…还用说嘛,就给他一个电压就可以了嘛,初中生都知道,那我们知道既然要通电,那么就要一个正极电流进入,然后从负极流出,在单片机里,我们把负极称作接地,即GND,在我们的大疆C型开发板上,自带有一个LED灯,因此我们无需准备灯,直接进入编程阶段

  1. 对Keil5和STM32CubeMx进行初始配置,跟着手册15-21页即可(这个很简单,跟着做就行了,做点笔记啥的)

  2. 配置STM32CubeMx生成初始代码,这段跟着手册25-27页做即可,都是机械性的照抄

  3. 接下来我们准备书写代码了,从刚刚生成的代码文件夹中,打开源代码在这里插入图片描述

  4. 刚开始打开这个源代码会看到一大堆一大堆的英文…当然其他的对我们这个点灯不大重要,那些在学习底层的时候才需要了解,我们只要知道,单片机通电或复位后,执行的是主函数,即main.c这个文件,我们双击点开在这里插入图片描述

  5. 参考手册的顺序图我们可以看到,单片机执行的代码依次是

    HAL_Init初始化 --> SystemClock_Config时钟配置 --> MY_GPIO_Init引脚配置 --> 输出高电平
  1. 因此我们下拉找到main.c中的while(1)循环,在里面可以书写我们需要的代码(为LED灯引脚输出高电平)
while (1)
  {
    /* USER CODE END WHILE */
		HAL_GPIO_WritePin(GPIOH, GPIO_PIN_10, GPIO_PIN_SET);
		HAL_GPIO_WritePin(GPIOH, GPIO_PIN_11, GPIO_PIN_SET);
		HAL_GPIO_WritePin(GPIOH, GPIO_PIN_12, GPIO_PIN_SET);
    /* USER CODE BEGIN 3 */
  }

我们发现,在CubeMx里我们配置的引脚PH10-13为输出状态,因此我们利用STM32的HAL库内的HAL_GPIO_WritePin;函数来控制引脚的电平变化,这是我们接触的第一个函数
手册中给出的函数形式是
void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState
看起来有点复杂,我大概解释一下下(不会很深入噢,想要深入研究的同学可以自行百度)

函数名HAL_GPIO_WritePin
函数作用控制引脚输出高/低电平
GPIOX对应GPIO总线,咱配置的PH10就写GPIOH
GPIO_Pin对应引脚数
PinStateGPIO_PIN_SET高电平,GPIO_PIN_RESET低电平

然后我们再来解释一下我们上面写的代码,随便拿一句
HAL_GPIO_WritePin(GPIOH, GPIO_PIN_10, GPIO_PIN_SET);
其结构就是:
函数名(GPIO总线,引脚数,引脚状态)
以此类推,我们要点亮PH11这盏灯的代码就是:
HAL_GPIO_WritePin(GPIOH, GPIO_PIN_11, GPIO_PIN_SET);

然后我们点击编译,编译成功会显示
在这里插入图片描述

此时我们将开发板用USB线连接到电脑任意端口上,再连接烧录器-开发板-电脑,具体连接方式可以参考我上一篇帖子,然后连接成功后我们点击下载,就可以把代码上传到我们的单片机上了,上传成功后可以看到开发板左下角的LED灯亮起了白光,那为什么是白光呢,因为我们同时点亮了PH10 PH11 PH12,RGB三种颜色混合在一起就是白光,如果需要调节别的颜色,可以更改输出的引脚数,这个大家可以自己尝试

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SZTU_ELIAS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值