STM32学习笔记(二)--GPIO通用输入输出口详解

news2024/10/7 14:31:47

(1)配置步骤
1.使用RCC开启GPIO时钟
2.使用GPIO_Init函数初始化GPIO
3.使用输入或输出的函数等来控制GPIO
其中涉及外设有RCC、GPIO

(2)代码示例
案例1(设置PA0为推挽输出)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOA, &GPIO_InitStructure);

案例2(设置PB1 PB11为上拉输入)

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 | GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

(3)函数分析

函数1:void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState)(stm32f10x_rcc.h)
这个APB2外设时钟控制的函数用于使能或者失能APB2外设时钟的。

序号

名称

参数解释

示例

参数1

RCC_APB2Periph

选择哪个外设,根据列表选择

RCC_APB2Periph_GPIOA

参数2

NewState

使能或者失能

ENABLE、DISABLE

同理RCC_AHBPeriphClockCmd RCC_APB1PeriphClockCmd只是总线上的外设不同

函数2:void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);(stm32f10x_gpio.h) 用结构体的参数来初始化GPIO口,包含配置8种模式的选择、引脚号、引脚速度。

序号

名称

参数解释

示例

参数1

GPIO_TypeDef* GPIOx

可以是A到G任何一个GPIO外设

GPIOB

参数2

GPIO_InitTypeDef* GPIO_InitStruct

结构体指针,该结构体包含了所有GPIO外设的信息

&GPIO_InitStructure

补充:注意GPIO_InitTypeDef结构体中的GPIO_InitStructure.GPIO_Mode,作用是八种模式的选择,如下所示

模式名称

性质

成员变量

特征

浮空输入

数字输入

GPIO_Mode_IN_FLOATING = 0x04

读引脚电平,若悬空则电平不确定

上拉输入

数字输入

GPIO_Mode_IPU = 0x48

可读取引脚电平,内部连接上拉电阻,悬空时默认高电平

下拉输入

数字输入

GPIO_Mode_IPD = 0x28

可读取引脚电平,内部连接下拉电阻,悬空时默认低电平

模拟输入

模拟输入

GPIO_Mode_AIN = 0x0

GPIO无效,引脚进入内部ADC

开漏输出

数字输出

GPIO_Mode_Out_OD = 0x14

可输出引脚电平,高电平为高阻态,低电平接VSS

推挽输出

数字输出

GPIO_Mode_Out_PP = 0x10

可输出引脚电平,高电平接VDD,低电平接VSS

复用开漏输出

数字输出

GPIO_Mode_AF_OD = 0x1C

由片上外设控制,高电平为高阻态,低电平接VSS

服用推挽输出

数字输出

GPIO_Mode_AF_PP = 0x18

由片上外设控制,高电平接VDD,低电平接VSS

函数3:uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)(stm32f10x_gpio.h)

该函数主要是读取指定端口引脚电平状态的作用,返回引脚电平bitstatus。

序号

名称

参数解释

示例

参数1

GPIO_TypeDef* GPIOx

端口号选择

GPIOB

参数2

uint16_t GPIO_Pin

引脚号选择

GPIO_Pin_1

函数4:void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal)(stm32f10x_gpio.h)

该函数主要是写指定端口引脚的电平状态。

序号

名称

参数解释

示例

参数1

GPIO_TypeDef* GPIOx

端口号选择

GPIOB

参数2

uint16_t GPIO_Pin

引脚号选择

GPIO_Pin_1

参数3

BitVal

电平状态

0或者1

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

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

相关文章

RemObjects教程

File—Other…—RemObjects Data Abstract—ComboServer Step(1) 在出现的 NewRemObjects SDK Server 对话框中 Project Folder :文件存档路径 Project Name :工程名称 Also-Create a matching client application and a project group:在创…

破局消费供应链,企业费用管理如何应对变与不变?

供应链管理在过去一直被局限在生产与产品供应领域,更多被理解为生产及流通过程中,涉及将产品或服务提供给最终用户活动的上游与下游企业所形成的网链结构,即将产品从商家送到消费者手中整个链条。因为直接对企业利润产生重大影响,…

工厂能耗监控与管理

随着工业4.0的浪潮席卷全球,工厂的能耗监控与管理已不再是简单的节能降耗问题,而是关乎企业竞争力、环保责任及可持续发展的核心议题。在这个关键时刻,HiWoo Cloud平台以其独特的视角和强大的功能,为工厂能耗监控与管理领域带来全…

微信客服:塑造卓越客户体验的新引擎

在数字化快速发展的今天,企业与客户之间的沟通方式正在发生深刻变革。微信客服,作为这一变革中的重要一环,以其高效、便捷、智能的特点,正在逐步成为企业塑造卓越客户体验的新引擎。 一、微信客服的崛起 微信,作为中…

虚拟警示教育馆如何革新安全教育?揭秘其深远意义与实际优势

一、推动警示教育的创新与普及 虚拟警示教育馆是将传统警示教育与现代科技相结合的新型教育模式。其意义主要体现在以下几个方面: 1、增强教育的互动性和沉浸感:虚拟警示教育馆通过3D建模、VR等技术,创建逼真的警示场景。这种身临其境的体验能…

【css】如何修改input选中历史选项后,自动填充的蓝色背景色

自动填充前: 自动填充后: 解决办法 方法一:设置背景透明 改变input自动填充背景颜色 // 通过拉长过渡时间,和延迟过渡开始时间,掩盖input自动填充背景颜色input:-internal-autofill-previewed,input:-internal-aut…

2024年文献数据库合集分享

无论是刚踏入学术界的新手,还是经验丰富的资深学者,在寻找专业资料时都可能感到头疼:这些资料太专业了,普通网站难以找到... 许多人可能都有过这样的经历:急需一篇论文,却发现只有海外的专业网站才有&#…

企业为何需要搭建线上虚拟品牌展厅?

在数字化时代,线上虚拟品牌展厅已成为企业不可或缺的一部分。以下是构建线上虚拟品牌展厅的4大关键理由: 1、迎合在线购物趋势 随着移动互联网的飞速发展和普及,消费者越来越倾向于在线购物。一个线上虚拟品牌展厅能够完美地满足这一需求&am…

flac格式如何转mp3?7大热门实用音频转换软件大PK

FLAC是Free Lossless Audio Codec(免费无损音频编解码器)的缩写,是一种在压缩文件大小的同时保留原始音乐质量的音频格式。不过,大多数音频格式都会在音乐质量和文件大小之间做出权衡。当你使用flac获得更好的音乐质量时&#xff…

软考阅卷将完成?!软考成绩有望六月底公布!

2024上半年软考考试已于5月25日-28日举行,考完试后大家最关心的事情莫过于查分了。 一、最新消息 1、不同地区在报名时对成绩公布的时间有所预示,但并没有一个统一的日期举个例子,江苏考区预计在6月下旬公布成绩,而黑龙江考区则预…

echart在线图表demo下载直接运行

echart 全面的数据可视化图表解决方案 | 折线图、柱状图、饼图、散点图、水球图等各类图表展示 持续更新中 三色带下表题速度仪表盘 地图自定义图标 动态环形图饼状图 动态水波动圆形 多标题指针仪表盘 温度仪表盘带下标题 横向柱状图排名 环形饼状图 双折线趋势变化

影响建筑效果图后期时间的因素有哪些?渲染100邀请码1a12

建筑效果图是建筑设计师展示设计方案的重要手段,为了完美展现,我们通常会对效果图进行后期处理,那么影响后期时间的因素有哪些?这次我们来看看吧。 1、底图的质量 底图是指原始的渲染图片,它决定了后期处理的难易程度…

LVGL——(2)基础对象

目录 一、对象简介 二、基础对象简介 1、概念(lv_obj) 屏幕是没有父类的基础对象 屏幕对象的创建过程 LVGL的三层屏幕 2、大小(size) 相关函数 代码示例 3、位置(position) LVGL屏幕的原点 屏幕(部件区域)的表示 相关函数 LV_ALIGN_...参数…

无代码爬虫八爪鱼采集器-如何采集携程网指定酒店差评信息

场景描述:有一些酒店会分析同行的差评原因,以便提前做预案,避免自己酒店也放同样的错误。他们通过采集携程网指定酒店的提取中差评,使用的采集工具为无代码爬虫软件八爪鱼采集器免费版,下载链接:1.软件分享…

颠覆行业!格行随身WiFi重新定义服务标准,线上线下无缝融合!随身WiFi行业的“海底捞”!随身WiFi哪个品牌最可靠?随身WiFi靠谱推荐!

不得不承认网络销售是现如今的重要销售方式,刚刚结束的618,以及接下来的双11,双12等电商购物节都是异常火爆,可背后也有不同的声音传来,网店现在生意也难做了?消费正回归线下实体经济? 这就是因…

移动硬盘分区误删?专业恢复策略与预防措施

一、认识移动硬盘分区误删 在使用移动硬盘时,有时我们可能会遇到分区误删的情况。这通常指的是由于某种原因,用户错误地删除了移动硬盘上的某个分区,导致该分区内的所有数据丢失。分区误删是一种常见的数据丢失问题,对于用户来说…

计算机组成原理网课笔记2

存储系统基本概念 主存储器的基本组成 半导体元件的原理 存储芯片的基本原理 如何实现不同的寻址方式

【每日刷题】Day68

【每日刷题】Day68 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 451. 根据字符出现频率排序 - 力扣(LeetCode) 2. 最小的K个数_牛客题霸_牛客…

暑期计划打卡清单表怎么写 暑期待办计划清单

暑假来临,是不是感觉时间好像突然多了起来,但又不知道该做些什么好?别担心,列一个暑期计划打卡清单表,就能让你的暑假生活变得有条不紊、充实而有意义。 计划清单,就像是给暑假生活绘制的一张地图。没有它…

合肥工业大学人工智能原理课程实验-波士顿房价预测

目录 1.实验内容 2.实验环境 3.实验思路(算法分析) 4.实验过程、步骤 5.实验结果与评价 6.实验体会与收获 7.附录 1.实验内容 波士顿房地产市场竞争激烈,而你想成为该地区最好的房地产经纪人。为了更好地与同行竞争,你决定运…