使用库函数点亮一个LED灯

软件设计

STM32Gpio的介绍

如果想让LED0点亮,那么R12就要是高电平,LED0就要是低电平,也就是PF9就是低电平

F407系统主频要工作在168MHZ

F103的话是工作在72mhz

F429的话就180MHZ

接着我们就要使能Gpio的时钟,使能之后对GPIO相关的参数,比如说工作模式,管脚输出方向,输出的速度怎么样,最后点亮LED灯

编写的一些外设驱动文件,比如我们的LED,蜂鸣器,LCD,IIC,SPIflash等等

这里放一些驱动程序,比如说串口的程序,以及系统的一些时钟初始化,变量的重定义等等主要是用来调试

保存LED的文件存放在APP/led

头文件

定义我们的管脚,以及我们函数的声明

在public中存放系统时钟文件.C和.h文件

在我们的主函数那里有很多初始化定义时钟的配置,还在关键字的重定义,这样子的主函数就会特别多东西

现在我们先把关键字放在时钟的头文件

把他拷贝进来后,突然发现报错了

因为这些类型都定义在stm32f4xx.h的这个文件中

为什么要写这个格式

首先你要知道如果没有这个格式,我们在led.c和main.c里放这个头文件,

那么当你编译的时候就会发出一个错误,类型重定义

出现这个问题是因为你main.c你又包括led.c你放一个头文件进去,就会被包含两次

怎么解决这个

主要是用ifndef这个预定义符号,这个后面加个定义system_h

是想看看这个有没有被定义,没有的话就执行了下面的程序,

如果定义了就不会走下去,就只包含了一次

接下来包含头文件, 不然就找不到

添加文件到APP那里

看到这个就知道要添加头文件了、

抢占和响应优先级为0到3

GPIO相关函数的使用

这个函数的作用是对端口的时钟进行使能

如果你要关闭的话就失能使用这个函数、、

Gpio初始化函数

这个是端口,就是你想点亮的LED灯所在的端口

初始化结构体的指针

这个就是那个结构体

pin是引脚

mode是模式

pull是上拉或者是下拉

Speed是我们的速度

Alternate是我们复用的功能是一些配置

Gpio功能的配置

想让他初始化为熄灭状态,那么就要上拉,你左边的和右边的电平要一致就不会导通了

输出引脚高低电平的函数,第一个参数是他引脚的端口,第二个是他的引脚,第三个是高低电平

这样子写是可以是因为他们能在同一端口上

因为可能不在一个端口上,所以分开写

这个把上拉和高速删了,因为配置重复了,所以要删除下面的那个

这样写便于移植,这些东西都是放在LED文件下的,如果你到时候换个版,你在这里修改引脚,到时候全部就可以用了,就不用改那么多了

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

YOLOV8输出预测框的坐标信息

结果:(前提是对应类别的yolov8模型已经训练好) 具体实现: 在ultralytics\utils\plotting.py里面 CtrlF搜索box_label 再次照片的最后一行输入: # 左上角cv2.putText(self.im, f"({p1[0]}, {p1[1]})", (p1…

19.初始C语言指针

初始C语言指针 1.指针的认识2.指针变量的引入3.指针变量的类型4.指针的应用场景15.指针的应用场景26.作业 1.指针的认识 指针 地址 //int a 10; //类型 变量名 内存地址 值 1.变量名直接访问2.通过地址访问&:取地址运算符* :将地址内的值读取…

Nacos未授权下载配置信息

0x01 漏洞描述: Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos存在未授权文件下载,攻击者在不登录情况下可未授权下载系统配置文件。 攻击者利用该漏洞可未授权获取到系统配置文件,如数据库和Redis连接地址…

【Delphi】创建应用程序和 LiveBindings示例(FMX)

一、创建一个FMX程序 界面上放置上如下3个控件:TProgressBar1, TArcDial1,TTrackBar1。 二、打开LiveBindings Designer 设计器 三、在 LiveBindings Designer 中,您的绑定图只包含对象,您可以将它们连接起来。 四、在设计器中,在…

openFrameworks_如何使用ofxXmlSettings和ofxGui来创建识别界面

效果图: 代码及详解 1.添加两个插件的头文件: #include "ofxGui.h" #include "ofxXmlSettings/src/ofxXmlSettings.h" 2.添加GUI部分,然后在.h声明右边的openframeworks的UI部分,包括面板ofxPanel,按钮ofx…

Tomcat 漏洞复现

1、CVE-2017-12615 1、环境开启 2、首页抓包,修改为 PUT 方式提交 Tomcat允许适用put方法上传任意文件类型,但不允许isp后缀文件上传,因此需要配合 windows的解析漏洞 3、访问上传的jsp文件 4、使用工具进行连接 2、后台弱⼝令部署war包 1…

简单了解一下SurfaceView

0 背景 最近好几次面试被问到SurfaceView的特点了,都没回答出来。 SurfaceView和TextureView也是Compose这样的声明式ui唯二实现不了控件;因为他们就不是View,而是Android提供的和Surface相关的显示系统 。 特此简单了解一下。 1 应用场景…

【Godot4.3】点数据简易表示法和Point2D

概述 在构造多点路径时我们会用到PackedVector2Array,并使用Vector2()来构造点。在手动创建多点数据时,这种写法其实很难看,有大量重复的Vector2(),比如下面这样: var points [Vector2(100,100),Vector2(200,200),V…

[Python]二、Python基础数据科学库(1)

F:\BaiduNetdiskDownload\2023人工智能开发学习路线图\2、机器学习核心技术\1、零基础快速入门机器学习 1.机器学习概述 1.1 人工智能概述 1.1.1 人工智能与机器学习、深度学习 1956年-达特茅斯会议-人工智能的起点 人工智能和机器学习、深度学习的关系: 1. 机器学习…

软考(9.22)

1 在浏览器的地址栏中输入xxxyftp.abc.can.cn,在该URL中( )是要访问的主机名。 A.xxxyftp B.abc C.can D.cn 协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名。 本题xxxyftp是主机名,选择A选项。 2 假设磁盘块与缓冲区大小相同,…

Django基础-创建新项目,各文件作用

学习Django的前置知识: python基本语法:需要掌握Python中的变量、循环、条件判断、函数等基本概念。面向对象编程(OOP):Django的核心架构基于面向对象编程,许多功能(如模型和视图)依…

【无人机设计与控制】 基于matlab的蚁群算法优化无人机uav巡检

摘要 本文使用蚁群算法(ACO)优化无人机(UAV)巡检路径。无人机巡检任务要求高效覆盖特定区域,以最小化能源消耗和时间。本研究提出的算法通过仿生蚁群算法优化巡检路径,在全局搜索和局部搜索中平衡探索与开…

文档布局内容检测系统源码分享

文档布局内容检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…

银河麒麟高级服务器操作系统V10外接硬盘挂载指南

银河麒麟高级服务器操作系统V10外接硬盘挂载指南 1、临时挂载外接硬盘2、永久挂载外接硬盘3、总结 💖The Begin💖点点关注,收藏不迷路💖 在使用银河麒麟高级服务器操作系统V10时,您可能希望将外接硬盘(如sd…

django应用JWT(JSON Web Token)实战

文章目录 一、什么是JWT二、为什么使用JWT三、在django项目中如何应用JWT1、安装djangorestframework-simplejwt库:2、在settings.py中配置JWT认证:3、在urls.py中配置JWT的获取和刷新路由: 四、JWT如何使用1、调用生成JWT的接口获取JWT2、客…

C/C++内存管理 ——

目录 五、C/C内存管理 1、C/C内存分布 2、C语言中动态内存管理方式:malloc/calloc/realloc/free 3、C内存管理方式 1.new/delete操作内置类型 2.new和delete操作自定义类型 4、operator new与operator delete函数 5、new和delete的实现原理 1.内置类…

十六 未来信息综合技术(考点篇)试题

SaaS:软件即服务,PaaS:平台即服务,LaaS:基础设施即服务。 SaaS:偏向于提供各种软件接口来提供相关的服务;PaaS:偏向于吧一些基础的功能整合成一个平台,把整个平台或部分…

【人工智能】Linux系统Mamba安装流程

在编译安装 mamba 之前,你需要确保已安装正常的PyTorch环境。 # 安装必要的系统依赖 sudo apt update sudo apt install build-essential # 安装mamba依赖 pip install packaging wheel # 克隆仓库 git clone https://github.com/Dao-AILab/causal-conv1d.git git …

【python】修改字典的内容

person {"name": "John", "age": 30, "city": "New York"} print("最开始的信息:",person)def process_person_info(person):# 检查对象中是否包含所有必要的键if name in person and age in person …

计算机人工智能前沿进展-大语言模型方向-2024-09-22

计算机人工智能前沿进展-大语言模型方向-2024-09-21 引言: 全球最热销的国产游戏-《黑神话: 悟空》不仅给世界各地玩家们带来愉悦,而且对计算机人工智能研究也带来新的思考。在本期的论文速读中,我们带来一篇关于视觉语言模型(VLMs&#xf…