【STM32】使用标准库点亮LED

1.硬件设计

在这里插入图片描述

LED1的阴极接到了PC13引脚上,我们控制PC13引脚的电平输出状态,即可控制LED1的亮灭。

2.编程要点

  1. 使能GPIO端口时钟;
  2. 初始化GPIO目标引脚为推挽输出模式;
  3. 编写简单测试程序,控制GPIO引脚输出高、低电平。

查看手册发现,PC13引脚在AHB1总线上,所以,使能时钟的时候应该是AHB1总线。

在这里插入图片描述

3.源码

bsp_led.h#ifndef __BSP_LED_H
#define __BSP_LED_H#ifdef __cplusplus
extern "C"{#endif#include "stm32f4xx.h"#define LED1_PIN             GPIO_Pin_13
#define LED1_GPIO_Port       GPIOC
#define LED1_GPIO_CLK        RCC_AHB1Periph_GPIOCvoid Init_LED(void);
void LED_ON(void);
void LED_OFF(void);#ifdef __cplusplus
}
#endif#endif
bsp_led.c#include "bsp_led.h"void Init_LED(void)
{//使能GPIO时钟RCC_AHB1PeriphClockCmd(LED1_GPIO_CLK,ENABLE);//初始化GPIOGPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin=LED1_PIN;GPIO_InitStruct.GPIO_Mode=GPIO_Mode_OUT;GPIO_InitStruct.GPIO_OType=GPIO_OType_PP;GPIO_InitStruct.GPIO_PuPd=GPIO_PuPd_UP;GPIO_InitStruct.GPIO_Speed=GPIO_Fast_Speed;GPIO_Init(LED1_GPIO_Port,&GPIO_InitStruct);
}void LED_ON(void)
{GPIO_ResetBits(LED1_GPIO_Port,LED1_PIN);
}void LED_OFF(void)
{GPIO_SetBits(LED1_GPIO_Port,LED1_PIN);
}

在USER目录中增加LED文件夹,并新增驱动文件

在这里插入图片描述

然后,还需要在keil的USER组文件夹中添加源文件,同时还需要添加头文件目录。

最后,在main函数中调用驱动接口,就会发现LED等在闪烁。

#include "bsp_led.h"void delay(uint32_t cnt)
{while(cnt--);
}int main(void)
{Init_LED();/* Infinite loop */while (1){LED_ON();delay(0xFFFFFF);LED_OFF();delay(0xFFFFFF);}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Tomcat Websocket应用实例研究

概述 本文介绍了如何根据Tomcat给出的websocket实例,通过对实例的学习,定制自己基于websocket的应用。 环境及版本: Ubuntu 22.04.4 LTSApache Tomcat/10.1.20openjdk 11.0.23 2024-04-16浏览器:Chrome 相关资源及链接 Class…

python连接数据库,相关数据处理

随机生成一千个数据插入large_db中 # 这是一个示例 Python 脚本。# 按 ShiftF10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 import pandas as pd from sqlalchemy import create_engine from faker import Faker# 初始化fa…

AWS无服务器 应用程序开发—第十六章 CI/CD CodeBuild

在 AWS CodeBuild 中进行单元测试需要配置构建规范文件 (buildspec.yml),该文件定义了 CodeBuild 在构建过程中需要执行的步骤。以下是如何使用 CodeBuild 进行单元测试的具体步骤: 准备项目结构 首先,确保你的项目具有适当的目录结构和测试文件。以下是一个示例项目结构:…

加密excel(Python)

文章目录 一、EXCEL加密 一、EXCEL加密 import randomfrom win32com.client import Dispatchdef random_password(length20):默认返回20位随机密码key ""characters "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"for i in range(l…

Airflow 中的trigger_rule

最近正在使用airflow,用到了这个,记录下 在 Apache Airflow 中,trigger_rule 是用于控制任务何时被触发的规则。TriggerRule 是一个枚举类型,它包含了多种不同的触发规则。以下是这些规则及其用途的详细说明: ALL_SUC…

【价值主张画布】以产品思维,将自己打造成“爆款”

经营自己等于经营公司: 1.客户细分:我能帮助谁?谁是我们最重要的客户? 2. 客户关系:怎样和对方打交道?一次交付还是持续交付? 3.渠道通路:怎样宣传自己和服务? 4. 价值主…

Jmeter 性能测试步骤是什么?

性能测试是软件开发过程中非常重要的一环。它可以帮助我们评估软件系统在不同负载下的性能表现,找出系统中的性能瓶颈,并提供改进方案。而JMeter作为一款功能强大且广泛使用的性能测试工具,可以帮助我们实现这一目标。 下面,我将…

银河麒麟4.0.2安装带有opengl的Qt5.12.9

银河麒麟4.0.2下载地址:银河麒麟-银河麒麟(云桌面系统)-银河麒麟最新版下载v4.0.2-92下载站 VirtualBox:https://www.virtualbox.org/wiki/Downloads qt下载:Index of /archive/qt/5.12/5.12.9 1安装VirtualBox:网上教材比较多 1)安装完后安…

方法论:SWOT、SMART

解决方案分析方法论SWOT 什么是SWOT:例子中间件RabbitMQ和RocketMQ队列选择对比S(strengths)优势:RabbitMQ团队多人用过,AMQP跨语言、模型API丰富W(weaknesses)劣势:RabbitMQ阅读过…

GooglePlay | 发布APK步骤

将生成好的 APK 包上传到 Google Play 商店涉及几个步骤。以下是详细指南: 1. 创建 Google Play 开发者账户 如果你还没有 Google Play 开发者账户,需要先创建一个: 访问 Google Play Developer Console.注册并支付一次性注册费&#xff0…

SAP ABAP开发过程中内表的概念及操作详解之三

八. 汇总表字段 汇总表字段(Summarizing Table Fields)是在ABAP编程中对内部表的数据进行汇总和计算的过程。这通常涉及到对数值字段进行求和、计数、平均值等计算。以下是汇总表字段的详细说明: 1. 使用COLLECT语句: COLLECT语…

干货 | 使用 Navicat BI 解锁数据的力量

商业智能(BI)是一种将数据转化为可执行洞察的实践,能够帮助业务领导者提升整体业绩。这个过程中最重要的一个阶段是数据探索和可视化阶段,它涉及通过报告将数据组织并转化为有意义的信息。为了让数据更易于理解,BI 专业…

第十一站:Java翡翠绿——大数据处理的力量

在Java大数据处理领域,Hadoop和Spark是两个至关重要的框架,它们充分展示了Java在处理大规模数据集方面的实力。下面我将通过简化的范例来讲解这两个框架的基本使用。 Hadoop MapReduce 示例 Hadoop MapReduce 是一种编程模型,用于处理和生成…

opencv 打开图片后,cv::mat存入共享内存的代码,以及如何设置共享内存的大小?图片的3840x2160 pixels

opencv 打开图片后,cv::mat存入共享内存的代码,以及如何设置共享内存的大小?图片的3840x2160 pixels。 在OpenCV中,将cv::Mat对象存入共享内存需要几个步骤。首先,你需要创建一个共享内存区域,然后将cv::Ma…

DashText-进阶使用

前置知识 BM25简介 BM25算法(Best Matching 25)是一种广泛用于信息检索领域的排名函数,用于在给定查询(Query)时对一组文档(Document)进行评分和排序。BM25在计算Query和Document之间的相似度…

好文!12个策略解决 Kafka 数据丢失问题

哥们儿!有遇到Kafka数据丢失问题的问题吗,你是如何解决的?今天的文章,V哥来详细解释一下,整理了12种解决策略,希望可以帮助你解决项目中的问题:以下是一些常见的解决方案和最佳实践。 生产者确认…

四川赤橙宏海商务信息咨询有限公司正规吗?

在数字化浪潮席卷全球的今天,电商行业正以前所未有的速度蓬勃发展。作为这一潮流的佼佼者,抖音电商以其独特的短视频直播模式,吸引了大量消费者和商家的目光。在这一背景下,四川赤橙宏海商务信息咨询有限公司应运而生,…

2Y0A21 GP2Y0A21YK0F 红外测距传感器 arduino使用教程

三根线 正极负极信号线 确认自己的三根线分别代表什么,我们的颜色可能不一样 附一张我买的传感器他们的说明图 正极 接 开发板5V 负极 接开发板GND 信号线 接A0 代码arduino ide上面写 // Infračerven senzor vzdlenosti Sharp 2Y0A21// připojen potře…

2024最新AI大模型-LLm八股合集(三)

常见的大模型 1.ChatGLM 1.1 背景 主流的预训练框架主要有三种: autoregressive自回归模型(AR模型) :代表作GPT。本质上是一个left-to-right的语言模型。 通常用于生成式任务 ,在长文本生成方面取得了巨大的成功…

【x264】整体框架汇总

【x264】整体框架汇总 1. x264整体框架图2. 思考 参考: x264源代码简单分析:概述 参数分析: 【x264】x264编码器参数配置 流程分析: 【x264】x264编码主流程简单分析 【x264】编码核心函数(x264_encoder_encode&…