点亮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灯,因此我们无需准备灯,直接进入编程阶段
对Keil5和STM32CubeMx进行初始配置,跟着手册15-21页即可(这个很简单,跟着做就行了,做点笔记啥的)
配置STM32CubeMx生成初始代码,这段跟着手册25-27页做即可,都是机械性的照抄
接下来我们准备书写代码了,从刚刚生成的代码文件夹中,打开源代码
刚开始打开这个源代码会看到一大堆一大堆的英文…当然其他的对我们这个点灯不大重要,那些在学习底层的时候才需要了解,我们只要知道,单片机通电或复位后,执行的是主函数,即main.c这个文件,我们双击点开
参考手册的顺序图我们可以看到,单片机执行的代码依次是
HAL_Init初始化 --> SystemClock_Config时钟配置 --> MY_GPIO_Init引脚配置 --> 输出高电平
- 因此我们下拉找到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相关推荐
- 翻转电平函数实现LED闪烁-STM32电控学习笔记05
翻转电平函数实现LED闪烁-STM32电控学习笔记05 day5:2022/9/23 [函数介绍] 在前面帖子大致了解了一下HAL_GPIO_WritePin()函数和HAL_Delay()函数的用法 ...
- PWM控制LED亮度(2-呼吸灯)-STM32电控学习笔记10
PWM控制LED亮度(2-呼吸灯)-STM32电控学习笔记10 day10:2022/9/29 前面学了两三天的PWM了,PWM本身不难理解,至于为啥进度缓慢,还不是这时钟定时器分频值重装载啥的太难理 ...
- STM32中断回调函数定时器-STM32电控学习笔记06
STM32中断&定时器-STM32电控学习笔记06 day6:2022/9/24 [中断概述] 在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口 ...
- RoboMaster电控学习笔记——电机控制(1-CAN)
Robomaster官方提供了一系列性能强大的直流无刷减速电机及配套电调,这里介绍三款步兵上用的电机&电调--M3508电机&C620电调,GM6020电机(内部集成电调),M2006 ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32 HAL库学习笔记4-SPI
STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...
- 模电设计学习笔记(二)——反相放大电路
模电设计学习笔记(二) 反向放大电路设计 反向放大电路:输出信号与输入信号的相位相反并且电压或电流值成一定比例. 如下图就是一个简单的反向放大电路. 设计反向放大电路,同样的需要先清除需求,然后定量的 ...
- STM32 Cube MX学习笔记——TOF 高速单线激光雷达 L10(usart)
STM32 Cube MX学习笔记--TOF 高速单线激光雷达 L10_串口中断通信 1. TOF 高速单线激光雷达 L10 2. STM32 Cube MX配置 3.代码配置 4.编译 烧录 显示 ...
- IC验证零基础学习-数电部分学习笔记
IC验证零基础学习-数电部分学习笔记 第一部分 第一章至第三章 主要内容: 四种进制之间的转换,二进制运算基础,原码/反码/补码的运算,常见的编码形式: 逻辑代数的三种基本运算,基本和常用公式,基本定 ...
最新文章
- 计算机视觉相关干货文章-20190807
- 以安全之名:俄罗斯强制所有消息应用留后门
- c#读取xml中特定节点的值(实例)
- 各种软件的含义和特点
- 如何通过parent object ID获得underlying object structure IBASE ID
- CSS3 列表、表格、滤镜
- Kafka初始化和故障转移
- eclipse插件开发(四) 流程图绘制插件(雏形)
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上拍卖秒杀竞价系统
- eclipse如何修改字体大小
- SpringMVC中实现文件上传
- 前端实战项目:前端框架Vue3.0项目教程(一)Vue3.0环境的搭建
- 全志r16android sdk,全志R16的android4.4.2平台點亮gc2145(evb30)版本:V1.1(分色排版)...
- 想改变Facebook? 先改变扎克伯格!
- Android Studio 连接逍遥模拟器
- Python爬虫-漫画柜漫画爬取
- linux系统密码正则,Linux密钥登录原理和ssh使用密钥实现免密码登陆
- 网络游戏运营的整体流程
- 前端入门练习之将psd文件转换为HTML文件
- 浪子心声-难分真与假人面多险诈
热门文章
- HDU 6447 YJJ's Salesman(线段树+DP)
- 彻底解决Android系统A-GPS搜不到卫星的问题!亲测!
- 智能手机也是一种计算机对不对,介绍手机内存的新闻,我转的,对不对不要喷啊...
- Collection集合家族
- python 读取gif_如何使用opencv(python)从url读取gif
- 苦学Excel、VBA,工作效率依旧低下?你该认识这个新工具了
- cf 1677 B. Tokitsukaze and Meeting
- scratch双语教师课件文档手册 1.初识scratch
- Redis框架(三):大众点评项目 基于Session的短信登录
- 成功解决 HP1010在WIN7下打印速度慢问题