当前位置: 首页 > news >正文

STM32之点亮LED灯

使用固件库实现LED点灯

LED灯:

LED灯,是一种能够将电能转化为可见光的半导体器件

控制LED灯:

LED灯的正极接到了3.3V,LED灯的负极接到了PA1,也就是GPIOA1引脚

只需要控制PA1为相对应的低电平,即可点亮对饮的LED灯,输出高电平则熄灭对应的LED灯。

原理图:

具体代码如下:

主函数:

点亮灯的函数:

配置各个函数的具体做法:

因为我们是使用GPIO进行输出所以先打开stm32f103x_gpio.h的库文件,里面有许多的定义的函数所需的结构体,再打开一些时钟所需的库函数stm32f10x_rcc.h,stm32f10x_rcc.c,stm32f10x.h

我们的思想是在main函数里面调用一个函数使这个LED灯变亮

主要分为三步走:

初始化GPIO外设时钟(被调用的函数)

初始化LED引脚

输出电平

led_initstruct是我们自己定义的结构体名称,通过这个就可以配置相关的引脚,输出速度,输出模式。

输出速度的配置

输出模式的配置,这里我使用的是推挽输出,即Out_PP

配置初始化GPIO结构体,在这里第一个参数是GPIOA,第二个参数是我们定义的  GPIO结构体名称led_initstruct 

外设时钟(使能ENABLE)

配置电平

第一个参数为GPIOA

第二个参数为GPIO_Pin_1

我们所用的GPIOA是通过桥接线APB2连接的

成功点亮(上面一个是电源指示灯,下面一个才是需要点亮的LED灯)

实现LED闪烁

只需在main函数里面进行操作即可

这里边加入了一个延迟函数delay(),里面的i是一个通过CPU主频灯大致计算的数值,无需记住。

如下图,上面一行是输出高电平,下面一行是输出低电平,我们要使LED灯熄灭,可以在PA1输出高电平,使两端无法流通,就可以实现熄灭。

相关文章:

  • 大数据量实现滚动分页-vue3+element-plus实现方式
  • docker升级docker pull mysql:5.7.37异常
  • C++ 11---lambda表达式与包装器
  • 整体思想以及取模
  • Spring @Async注解【总结记录】
  • 点对点专线的带宽管理和控制功能解析
  • 【AI趋势9】开源普惠
  • c语言练习题1
  • APP 整改要求 “未清晰明示高德SDK处理IP地址、SSID、BSSID的目的、方式和范围。”
  • 【QT】——1_QT学习笔记
  • 学懂C++(三十九):网络编程——深入详解 TCP 和 UDP 的区别和应用场景
  • Moodle与ONLYOFFICE集成如何实现智能教学管理
  • python中dataframe的iloc和loc的使用区别
  • 秋叶SD整合安装包更新了!8月最新版4.9【附下载】
  • Qt 0821作业
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Javascript编码规范
  • JavaScript函数式编程(一)
  • jquery cookie
  • Netty 4.1 源代码学习:线程模型
  • Python打包系统简单入门
  • Webpack 4 学习01(基础配置)
  • 前端存储 - localStorage
  • 使用docker-compose进行多节点部署
  • 用简单代码看卷积组块发展
  • 数据可视化之下发图实践
  • ​用户画像从0到100的构建思路
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (1)虚拟机的安装与使用,linux系统安装
  • (20050108)又读《平凡的世界》
  • (3)选择元素——(17)练习(Exercises)
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (黑客游戏)HackTheGame1.21 过关攻略
  • (考研湖科大教书匠计算机网络)第一章概述-第五节1:计算机网络体系结构之分层思想和举例
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四) Graphivz 颜色选择
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (转)平衡树
  • (转)我也是一只IT小小鸟
  • (转载)在C#用WM_COPYDATA消息来实现两个进程之间传递数据
  • .Net 6.0--通用帮助类--FileHelper
  • .net core使用EPPlus设置Excel的页眉和页脚
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 发送邮件
  • .net 流——流的类型体系简单介绍
  • /bin/rm: 参数列表过长"的解决办法
  • @TableLogic注解说明,以及对增删改查的影响
  • [ Socket学习 ] 第一章:网络基础知识
  • [20171106]配置客户端连接注意.txt
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [3D基础]理解计算机3D图形学中的坐标系变换
  • [bug总结]: Feign调用GET请求找不到请求体实体类
  • [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
  • [C]编译和预处理详解