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 对应引脚数
PinState GPIO_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三种颜色混合在一起就是白光,如果需要调节别的颜色,可以更改输出的引脚数,这个大家可以自己尝试

点亮LED-STM32电控学习笔记03相关推荐

  1. 翻转电平函数实现LED闪烁-STM32电控学习笔记05

    翻转电平函数实现LED闪烁-STM32电控学习笔记05 day5:2022/9/23 [函数介绍] 在前面帖子大致了解了一下HAL_GPIO_WritePin()函数和HAL_Delay()函数的用法 ...

  2. PWM控制LED亮度(2-呼吸灯)-STM32电控学习笔记10

    PWM控制LED亮度(2-呼吸灯)-STM32电控学习笔记10 day10:2022/9/29 前面学了两三天的PWM了,PWM本身不难理解,至于为啥进度缓慢,还不是这时钟定时器分频值重装载啥的太难理 ...

  3. STM32中断回调函数定时器-STM32电控学习笔记06

    STM32中断&定时器-STM32电控学习笔记06 day6:2022/9/24 [中断概述] 在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口 ...

  4. RoboMaster电控学习笔记——电机控制(1-CAN)

    Robomaster官方提供了一系列性能强大的直流无刷减速电机及配套电调,这里介绍三款步兵上用的电机&电调--M3508电机&C620电调,GM6020电机(内部集成电调),M2006 ...

  5. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  6. STM32 HAL库学习笔记4-SPI

    STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...

  7. 模电设计学习笔记(二)——反相放大电路

    模电设计学习笔记(二) 反向放大电路设计 反向放大电路:输出信号与输入信号的相位相反并且电压或电流值成一定比例. 如下图就是一个简单的反向放大电路. 设计反向放大电路,同样的需要先清除需求,然后定量的 ...

  8. STM32 Cube MX学习笔记——TOF 高速单线激光雷达 L10(usart)

    STM32 Cube MX学习笔记--TOF 高速单线激光雷达 L10_串口中断通信 1. TOF 高速单线激光雷达 L10 2. STM32 Cube MX配置 3.代码配置 4.编译 烧录 显示 ...

  9. IC验证零基础学习-数电部分学习笔记

    IC验证零基础学习-数电部分学习笔记 第一部分 第一章至第三章 主要内容: 四种进制之间的转换,二进制运算基础,原码/反码/补码的运算,常见的编码形式: 逻辑代数的三种基本运算,基本和常用公式,基本定 ...

最新文章

  1. 计算机视觉相关干货文章-20190807
  2. 以安全之名:俄罗斯强制所有消息应用留后门
  3. c#读取xml中特定节点的值(实例)
  4. 各种软件的含义和特点
  5. 如何通过parent object ID获得underlying object structure IBASE ID
  6. CSS3 列表、表格、滤镜
  7. Kafka初始化和故障转移
  8. eclipse插件开发(四) 流程图绘制插件(雏形)
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上拍卖秒杀竞价系统
  10. eclipse如何修改字体大小
  11. SpringMVC中实现文件上传
  12. 前端实战项目:前端框架Vue3.0项目教程(一)Vue3.0环境的搭建
  13. 全志r16android sdk,全志R16的android4.4.2平台點亮gc2145(evb30)版本:V1.1(分色排版)...
  14. 想改变Facebook? 先改变扎克伯格!
  15. Android Studio 连接逍遥模拟器
  16. Python爬虫-漫画柜漫画爬取
  17. linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆
  18. 网络游戏运营的整体流程
  19. 前端入门练习之将psd文件转换为HTML文件
  20. 浪子心声-难分真与假人面多险诈

热门文章

  1. HDU 6447 YJJ's Salesman(线段树+DP)
  2. 彻底解决Android系统A-GPS搜不到卫星的问题!亲测!
  3. 智能手机也是一种计算机对不对,介绍手机内存的新闻,我转的,对不对不要喷啊...
  4. Collection集合家族
  5. python 读取gif_如何使用opencv(python)从url读取gif
  6. 苦学Excel、VBA,工作效率依旧低下?你该认识这个新工具了
  7. cf 1677 B. Tokitsukaze and Meeting
  8. scratch双语教师课件文档手册 1.初识scratch
  9. Redis框架(三):大众点评项目 基于Session的短信登录
  10. 成功解决 HP1010在WIN7下打印速度慢问题