STM32f103 CubeMX封装 led程序
创始人
2024-05-27 01:36:04
0

本文代码使用 HAL 库。

文章目录

  • 前言
  • 一、LED 原理图
  • 二、CubeMX创建工程
  • 三、LED 相关函数
      • 1. 输出电平函数:
      • 2. 延时函数:
      • 3. 翻转电平函数:
  • 四、详细代码
      • 实验现象 :
  • 总结
      • 代码 源码:


前言

从这篇文章开始,我们讲解 stm32 f103 ,详细介绍各个模块的知识。


一、LED 原理图

参考 原理图:

可以看到 对于 103 板子,有 3 个 LED:
分别为 LED1 , LED2 , LED3 ;分别对应 io 端口 PB0 , PB1 ,PB5

可以看到 LED 左边 接 3V 的电压,要想点亮 LED,只需在 右边的 io 端口输出 低电平 即可。
反之,要想 熄灭 LED,就在 右边的 io 端口输出 高电平

我这里的是 RGB灯,可以闪烁不同的颜色:红,绿,蓝。
在这里插入图片描述

二、CubeMX创建工程

  1. 选择芯片
    在这里插入图片描述

  2. 选择 Debug 模式
    在这里插入图片描述

  3. 选择外部时钟
    在这里插入图片描述

  4. 配置系统时钟,在 红框中输入 72 ,然后点击 回车 两次,即可配置好。
    在这里插入图片描述

  5. 配置 io 引脚 为 输出引脚
    在这里插入图片描述
    在这里插入图片描述

  6. 设置工程模式和版本
    在这里插入图片描述

  7. 选取加入.c /.h文件(便于编写代码)
    在这里插入图片描述

  8. 创建工程
    在这里插入图片描述

三、LED 相关函数

1. 输出电平函数:

功能 :控制一个 GPIO 引脚输出 高 或者 低 电平。

HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState);

例如: 点亮 LED1

// 根据原理图,点电平点亮 led
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);

2. 延时函数:

功能:作为 毫秒 级延迟的函数。

__weak void HAL_Delay(uint32_t Delay)

例如:延迟 500 ms(毫秒)

HAL_Delay(500);

3. 翻转电平函数:

功能 :控制一个 GPIO 引脚电平 翻转 ,调用一次电平 翻转一次

HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin);

例如:让 led 闪烁:

  • 方法一:
	HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);HAL_Delay(500);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);HAL_Delay(500);
  • 方法二:
	HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_0);HAL_Delay(500);

四、详细代码

由于我们采用 封装的方法来写程序:

函数封装:
函数封装是指将一组相关的功能封装到一个函数中,以便重复使用。它可以帮助程序员更有效地编写代码,并减少重复代码的重复编写。

所以 , 我们将 led 程序用一个 .c .h 文件封装起来,这样便于我们对代码进行修改与移植。

在 .c 里进行代码的实现 ;.h 里进行代码的声明和宏定义。
在这里插入图片描述

  • 在 led.h 文件中声明 函数 :
#ifndef _LED_H
#define _LED_H/*led 初始化*/
void Led_init(void);/* led 点亮 */
void Led_on(void);  /* led 熄灭 */
void Led_off(void);#endif
  • 在 led.c 中 进行函数的实现:
#include "led.h"
#include "main.h"//led 初始化
void Led_init(void)
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
}
/* led 点亮 */
void Led_on(void)
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_RESET);
}
/* led 熄灭 */
void Led_off(void)
{HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET);HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5, GPIO_PIN_SET);
}
  • 在 main 中进行调用:
	  Led_on();HAL_Delay(500);Led_off();HAL_Delay(500);

注意: 最好在 main 里面 初始化 led , 先让 led 全部熄灭,这样便于观察, 调用 Led_init 函数


实验现象 :

对于RGB 灯闪烁的实验现象,我放在了 B占,有兴趣的可以看看,在以下网址:

https://www.bilibili.com/video/BV1384y1J7tr/?vd_source=986c364d205fa1124b337bc665f57c4f

总结

下篇文章我们讲解 按键 的驱动程序,大家可以自己试试 写一个 流水灯,跑马灯。

代码 源码:

stm32f103 点亮 LED程序 源码

相关内容

热门资讯

安卓系统的经典铃声,唤醒回忆的... 你有没有发现,手机里那些熟悉的铃声,有时候就像老朋友一样,陪伴着我们度过了无数个日日夜夜?今天,就让...
鸿蒙系统还是安卓系统号,系统之... 你有没有想过,手机里的操作系统就像是我们的大脑,它决定了我们手机能做什么,不能做什么。现在,就让我们...
安卓系统装贝达,安卓系统下的贝... 你有没有想过,你的安卓手机装上贝达系统后,会有怎样的奇妙体验呢?想象你的手机瞬间变身,变得流畅无比,...
安卓系统沃尔沃音响设置,轻松享... 你有没有发现,自从你的安卓手机和沃尔沃音响完美结合后,开车时的音乐体验简直就像是在音乐厅里一样?没错...
米10系统基于安卓,基于安卓的... 你知道吗?最近手机圈里可是热闹非凡呢!小米10这款手机,自从发布以来就吸引了无数人的目光。而它所搭载...
命令安卓系统怎么卸载,安卓系统... 手机里装了太多不用的应用,是不是感觉手机都快要爆炸了?别急,今天就来教你怎么轻松卸载安卓系统中的应用...
安卓系统安装小学教材,安卓系统... 你有没有想过,手机里的安卓系统竟然能装上小学教材呢?没错,你没听错!在这个信息爆炸的时代,科技的发展...
华为安卓系统锁住了,揭秘锁屏背... 最近是不是发现你的华为手机有点儿“顽皮”了?它突然间变得神秘起来,屏幕上那个熟悉的安卓系统仿佛被施了...
安卓电脑改苹果系统,跨越平台的... 你有没有想过,把你的安卓电脑改头换面,变成一个优雅的苹果系统使用者呢?想象那流畅的界面,那独特的触控...
安卓系统怎么按后台,并在任务完... 你有没有遇到过这种情况:手机屏幕一黑,安卓系统就自动进入后台了?是不是觉得有点小郁闷,想要手动切换回...
2021年安卓系统ui,202... 你有没有发现,手机界面最近好像换了个模样?没错,2021年的安卓系统UI可是来了一场大变身呢!今天,...
安卓系统程序编写软件,打造个性... 你有没有想过,手机里的那些神奇应用是怎么诞生的呢?没错,就是那些让你在闲暇时光刷刷视频、在通勤路上玩...
自动开机安卓系统,智能生活新篇... 你有没有想过,当你的安卓手机在清晨的第一缕阳光照耀下自动开机,那种轻松自在的感觉?想象不用再手动解锁...
真我平板x安卓系统,畅享智能生... 亲爱的读者们,你是否也在寻找一款既能满足你对平板电脑的期待,又能让你畅享安卓系统带来的无限乐趣的设备...
恒星安卓系统官网,引领未来智能... 亲爱的读者们,你是否曾好奇过那些闪耀在夜空中的星星,它们是如何在浩瀚的宇宙中熠熠生辉的呢?今天,我要...
u8安卓系统,功能与特色深度解... 你知道吗?在手机操作系统界,有一个小家伙可是相当受欢迎的,它就是U8安卓系统。今天,就让我带你来一探...
花椒安卓系统美颜功能,打造完美... 你有没有发现,现在拍照已经不仅仅是记录生活的工具了,它更是一种艺术创作呢!而在这其中,花椒安卓系统的...
戴尔平板升级安卓系统,畅享安卓... 你有没有发现,戴尔平板最近好像悄悄地来了一次大变身?没错,就是那个我们熟悉的戴尔平板,它现在竟然可以...
安卓助手怎么升级系统,畅享最新... 亲爱的安卓用户们,你是否也和我一样,对安卓系统的升级充满了期待和好奇呢?每次系统升级,都仿佛是给我们...
国产安卓系统的发展,国产安卓系... 你知道吗?在我国科技飞速发展的今天,国产安卓系统可是越来越受到大家的关注呢!它就像一颗冉冉升起的新星...