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

【嵌入式学习笔记】嵌入式入门1——GPIO

1.什么是GPIO

General Purpose Input Output,即通用输入输出端口,简称GPIO,作用是负责采集外部器件的信息或者控制外部器件工作,即输入输出。
在这里插入图片描述

2.STM32 GPIO简介

2.1.GPIO特点

  • 不同型号,IO口数量可能不一样,可通过选型手册快速查询
  • 快速翻转,每次翻转最快只需要两个时钟周期(F1最高速度可以到50Mhz)
  • 每个IO口都可以做中断
  • 支持8种工作模式

2.2.GPIO电气特性

  • STM32工作电压范围——2 V ≤ VDD ≤ 3.6 V

  • GPIO识别电压范围——COMS端口-0.3V ≤ VIL ≤ 1.164V,1.833V ≤ VIH ≤ 3.6V,部分兼容TTL

  • GPIO输出电流——单个IO,最大25mA

详情参考STM32的数据手册

2.3.GPIO引脚分布

STM32引脚类型:电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚

在这里插入图片描述
在这里插入图片描述
IO引脚分布特点:按组存在、组数视芯片而定、每组最多16个IO引脚

3.IO端口基本结构介绍

  • F1系列IO端口基本结构
    ① 保护二极管
    ② 内部上拉、下拉电阻
    ③ 施密特触发器
    ④ P-MOS & N-MOS管
    在这里插入图片描述

  • F4/F7/H7系列IO端口基本结构
    在这里插入图片描述

  • 施密特触发器:施密特触发器就是一种整形电路,可以将非标准方波,整形成方波
    在这里插入图片描述

  • P-MOS & N-MOS管:MOS管是压控型元件,通过控制栅源电压( Vgs )来实现导通或关闭
    在这里插入图片描述

4.GPIO的八种模式分析

模式特点及应用
浮空输入输入用,完全浮空,状态不定
上拉输入输入用,用内部上拉,默认是高电平
下拉输入输入用,用内部下拉,默认是低电平
模拟功能ADC、DAC
开漏输出软件IIC的SDA、SCL等
推挽输出驱动能力强,25mA(max),通用输出
开漏复用片上外设功能(硬件IIC 的SDA、SCL引脚等)
推挽复用片上外设功能(SPI 的SCK、MISO、MOSI引脚等

4.1.浮空输入

在这里插入图片描述

4.2.上拉输入

在这里插入图片描述

4.3.下拉输入

在这里插入图片描述

4.4.模拟功能

在这里插入图片描述

4.5.开漏输出

在这里插入图片描述

4.6.推挽输出

在这里插入图片描述

4.7.开漏复用

在这里插入图片描述

4.8.推挽复用

在这里插入图片描述

4.9.F4/F7/H7系列和F1系列的GPIO差异点

  • F1在输出模式,禁止使用内部上下拉,F4/F7/H7在输出模式,可以使用内部上下拉
  • 不同系列IO翻转速度可能不同

【STM32能输出5V的电平吗?——可以,兼容5V的引脚可以】

5.GPIO寄存器介绍

在F1系列和F4/F7/F7系列的GPIO中,选择GPIO模式的寄存器不同,控制输入输出的寄存器相同
在这里插入图片描述

5.1.F1/F4/F7/H7相同GPIO寄存器

  • 端口输入数据寄存器IDR——用于判断IO引脚的电平
    在这里插入图片描述
  • 端口输出数据寄存器ODR——用于设置IO引脚输出的电平
    在这里插入图片描述
  • 端口位设置/清除寄存器BSRR——用于设置ODR寄存器
    在这里插入图片描述

5.2.F1系列特有GPIO寄存器

  • 端口配置低/高寄存器CRL/CRH——设置工作模式、输出速度
    在这里插入图片描述

5.3.F4/F7/H7系列特有GPIO寄存器

  • GPIO 端口模式寄存器MODER——用于设置模式
    在这里插入图片描述
  • GPIO 端口输出类型寄存器OTYPER——用于设置输出类型
    在这里插入图片描述
  • GPIO 端口输出速度寄存器OSPEEDR——用于设置IO的输出速度
    在这里插入图片描述
  • GPIO 端口上拉/下拉寄存器(PUPDR)用于设置上拉/下拉电阻
    在这里插入图片描述

5.4.F1系列与F4/F7/H7系列工作模式配置

  • F1系列
    输入上拉/下拉电阻通过ODR寄存器来设置
    在这里插入图片描述
  • F4/F7/H7系列
    在这里插入图片描述

5.5.ODR和BSRR寄存器控制输出的区别

ST官方给的答案:使用ODR,在读和修改访问之间产生中断时,可能会发生风险;BSRR无风险。建议使用BSRR控制输出

ODR修改:读->->写
GPIOB->ODR |= 1 << 3;         	/* PB3 = 1 */
BSRR修改:写 
GPIOB->BSRR = 0x00000008;      	/* PB3 = 1 */

6.通用外设驱动模型(四步法)

在这里插入图片描述

7.GPIO配置步骤

  • 使能时钟 __HAL_RCC_GPIOx_CLK_ENABLE()

  • 设置工作模式 HAL_GPIO_Init()

  • 设置输出状态(可选) HAL_GPIO_WritePin() 、HAL_GPIO_TogglePin()

  • 读取输入状态(可选) HAL_GPIO_ReadPin()
    在这里插入图片描述

  • 关键结构体

// F1
typedef struct 
{ uint32_t Pin;        	/* 引脚号 */ uint32_t Mode;   		/* 模式设置 */ uint32_t Pull;       	/* 上拉下拉设置 */ uint32_t Speed;  		/* 速度设置 */ 
} GPIO_InitTypeDef;
// F4/F7/H7
typedef struct 
{ uint32_t Pin;    		/* 引脚号 */ uint32_t Mode;        /* 模式设置 */ uint32_t Pull;        /* 上拉下拉设置 */ uint32_t Speed;       /* 速度设置 */uint32_t Alternate; 	/* 复用功能 */
} GPIO_InitTypeDef;

8.编程实战:点亮一个LED灯/跑马灯

分析IO输出模式——推挽输出
在这里插入图片描述

9.编程实战:通过一个按键控制一个LED灯亮灭

在这里插入图片描述
在这里插入图片描述
【编程实战代码暂不贴出】

相关文章:

【嵌入式学习笔记】嵌入式入门1——GPIO

1.什么是GPIO General Purpose Input Output&#xff0c;即通用输入输出端口&#xff0c;简称GPIO&#xff0c;作用是负责采集外部器件的信息或者控制外部器件工作&#xff0c;即输入输出。 2.STM32 GPIO简介 2.1.GPIO特点 不同型号&#xff0c;IO口数量可能不一样&#x…...

[SQL挖掘机] - 多表连接: union

介绍: sql中的union是用于合并两个或多个select语句的结果集的操作符。它将多个查询的结果合并成一个结果集&#xff0c;并自动去除重复的行。请注意&#xff0c;union操作要求被合并的查询返回相同数量和类型的列。 用法: union的基本语法如下&#xff1a; select_stateme…...

AI面试官:SQL Server数据库(三)

AI面试官:SQL Server数据库(三) 当涉及到.NET工程师中关于SQL Server数据库的面试题时,主要考察候选人的数据库知识、SQL查询能力、数据库设计和优化等方面。 文章目录 AI面试官:SQL Server数据库(三)31. 数据库并发控制是什么?数据库有哪些常见的并发控制机制?32. 什…...

python刑事案卷图片转pdf

分两步&#xff0c;第一步是转图片&#xff0c;第二步是合并。 # -*- coding: utf-8 -*- import glob,os from PIL import Imagedef convert_to_pdf(path):# 打开图片文件img Image.open(path)# 将图片转换为 PDF&#xff0c;并保存到同名文件pdf_path os.path.splitext(path…...

vue使用driver.js完成页面引导的功能

需求&#xff1a;给客户做一个页面引导&#xff0c;教客户怎么做 效果&#xff1a; driverjs官方文档 一.安装driver.js # Using npm npm install driver.js# Using pnpm pnpm install driver.js# Using yarn yarn add driver.js 二.在自己需要引导的页面上引入driver.js i…...

学习中遇到的好博客

c日志工具之——log4cpp ECU唤醒的本质就是给ECU供电。 小文件&#xff1a;零拷贝技术 传输大文件&#xff1a;异步 IO 、直接 IO&#xff1a;如何高效实现文件传输&#xff1a;小文件采用零拷贝、大文件采用异步io直接io (123条消息) Linux网络编程 | 彻底搞懂…...

在CSDN学Golang云原生(Kubernetes集群安全)

一&#xff0c;ABAC授权模式 Kubernetes ABAC&#xff08;Attribute-Based Access Control&#xff09;授权模式是一种基于属性的访问控制模型&#xff0c;它可以根据用户或组的属性决定是否允许他们访问 Kubernetes 集群中的资源。 在使用 ABAC 授权模式时&#xff0c;管理员…...

浅谈深度神经网络

Deep neural networks are completely flexible by design, and there really are no fixed rules when it comes to model architecture. -- David Foster 前言 神经网络 (neural network) 受到人脑的启发&#xff0c;可模仿生物神经元相互传递信号。神经网络就是由神经元组成…...

『C语言初阶』第六章-操作符详解

前言 今天小羊又来为铁汁们更新C语言初阶的操作符详解&#xff0c;我们在平时写代码时总会写到一些算术操作符和赋值操作符&#xff0c;可是当铁汁们遇到其他的操作符时&#xff0c;就会望而却步&#xff0c;甚至写出一些bug&#xff0c;所以这期我给铁汁们带来新鲜出炉的操作…...

企业知识文档管理+群晖nas安全云存储

企业知识管理系统&#xff0c;利用软件系统或其他工具的企业管理方法&#xff0c;利用软件系统或其他工具&#xff0c;对组织中大量的有价值的方案、策划、成果、经验等知识进行分类存储和管理&#xff0c;积累知识资产避免流失&#xff0c;促进知识的学习、共享、培训、再利用…...

​《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话​

1.简介 由于近几年来各大网站越来越注重安全性都改成了https协议&#xff0c;不像前十几年前直接是http协议直接裸奔在互联网。还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了&#xff0c;想大展身手抓一下百度的包&#xff0c;结果一试傻眼了&#xff0c;竟然毛都没有…...

对比CahtGPT Bard Claude2对中文的理解

对比CahtGPT Bard Claude2对中文的理解 今天简单测试了一下目前这三个很火的模型对中文的理解能力 简单问题 鲁迅和周树人的关系 Bard CahtGPT Claude 介绍一下平凡的世界这本书 Bard CahtGPT...

安全测试国家标准解读——并发程序安全

本系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解&#xff0c;该标准是2020年4月28日&#xff0c;由国家市场监督管理总局、国家标准化管理委员会发布&#xff0c;2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理&#xff…...

《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(12)-Fiddler设置IOS手机抓包,你知多少???

1.简介 Fiddler不但能截获各种浏览器发出的 HTTP 请求&#xff0c;也可以截获各种智能手机发出的HTTP/ HTTPS 请求。 Fiddler 能捕获Android 和 Windows Phone 等设备发出的 HTTP/HTTPS 请求。同理也可以截获iOS设备发出的请求&#xff0c;比如 iPhone、iPad 和 MacBook 等苹…...

MySQL中锁的简介——行级锁

1.行级锁概念及分类 可通过以下语句查看意向锁和行锁的加锁情况&#xff1a; select object_schema,object_name,index_name,lock_type,lock_mode,lock_data from performance_schema.data_locks;InnoDB的行锁是针对于索引加的锁&#xff0c;不通过索引条件检索数据&#xff0…...

4 个最常见的自动化测试挑战及应对措施

有人说&#xff1a;“杂乱无章的自动化只会带来更快的混乱。”不仅更快&#xff0c;而且是更严重、更大的混乱。如果使用得当&#xff0c;自动化可以成为测试团队中令人惊叹的生产力助推器和系统的质量增强器。自动化测试的关键是要正确运用&#xff0c;这是初始最困难的部分。…...

23款奔驰GLE450豪华型升级AMG直瀑式中网,战斗感立马提升了一个档次

奔驰GLE450豪华型升级AMG竖杠中网前进气格栅&#xff0c;AMG中网竖杠格栅&#xff0c;镀铬饰条呈圆弧状&#xff0c;色泽均衡&#xff0c;质感顺滑&#xff0c;极富冲击力。AMG专属字标&#xff0c;与中网卡扣装配紧密&#xff0c;凸显AMG的身份象征&#xff0c;点睛之笔又不显…...

ALLEGRO之Logic

本文主要讲述ALLEGRO的Logic菜单。 &#xff08;1&#xff09;Net Logic&#xff1a;暂不清楚&#xff1b; &#xff08;2&#xff09;Net Schedule&#xff1a;暂不清楚&#xff1b; &#xff08;3&#xff09;AssignDifferential Pair&#xff1a;暂不清楚&#xff1b; &a…...

算法leetcode|64. 最小路径和(rust重拳出击)

文章目录 64. 最小路径和&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a; 64. 最小路径和&#xff1a; 给定一个包含非负整数的 m x n 网…...

css---实现文本超过两行时显示省略号(...)的效果

可以使用CSS中的text-overflow属性配合-webkit-line-clamp属性来实现。以下是一种常见的方式&#xff1a; .text-container {overflow: hidden;display: -webkit-box;-webkit-line-clamp: 2; /* 设置最大显示行数 */-webkit-box-orient: vertical;text-overflow: ellipsis; }在…...

从‘它怎么又挂了’到‘服务稳如狗’:我是如何用Prometheus+Grafana搭建业务监控看板的

从被动救火到主动防御&#xff1a;PrometheusGrafana构建业务监控实战手册 凌晨三点&#xff0c;手机突然响起刺耳的警报声——这已经是本周第三次了。揉着惺忪的睡眼查看日志&#xff0c;却发现关键线索早已被淹没在海量的调试信息中。这样的场景对于中小技术团队来说再熟悉不…...

如何用3dsconv解决3DS游戏格式兼容问题:从入门到精通的转换指南

如何用3dsconv解决3DS游戏格式兼容问题&#xff1a;从入门到精通的转换指南 【免费下载链接】3dsconv Python script to convert Nintendo 3DS CCI (".cci", ".3ds") files to the CIA format 项目地址: https://gitcode.com/gh_mirrors/3d/3dsconv …...

安卓应用按钮样式问题及解决方案

在开发安卓应用的过程中,我们常常会遇到一些看似简单但实际上隐藏着复杂问题的样式问题。今天我们来探讨一个在更换设备后按钮样式发生变化的问题。 问题描述 一位开发者在Android Studio中开发了一个食谱应用。当他从一台手机切换到另一台手机运行应用时,发现所有的按钮都…...

北京联通IPTV组播配置实战:OpenWRT与udpxy的完美结合

1. 为什么需要OpenWRTudpxy方案 家里换了新电视后&#xff0c;突然想把闲置的北京联通IPTV利用起来。传统机顶盒接线麻烦不说&#xff0c;还占用了宝贵的HDMI接口。经过实测&#xff0c;用OpenWRT路由器配合udpxy插件转换组播信号&#xff0c;才是真正的"一劳永逸"解…...

【大英赛】2009-2026年大英赛ABCD类历年真题、样卷、听力音频及答案PDF电子版

2026年大英赛将于4月12日9:00—11:00举行&#xff0c;开始倒计时啦&#xff01;小编整理了最新的2009-2026年大学生英语竞赛&#xff08;大英赛NECCS&#xff09;ABCD类历年真题、样卷、听力音频及答案解析&#xff0c;PDF电子版&#xff0c;可下载打印&#xff01; 资料下载&a…...

Windows自定义部署神器:从零开始的安装介质制作指南

Windows自定义部署神器&#xff1a;从零开始的安装介质制作指南 【免费下载链接】MediaCreationTool.bat Universal MCT wrapper script for all Windows 10/11 versions from 1507 to 21H2! 项目地址: https://gitcode.com/gh_mirrors/me/MediaCreationTool.bat 你是否…...

第3期 工程车辆目标检测数据集

第3期 目标检测——工程车辆数据集 一、研究背景与意义 工程车辆是建筑工程机械的核心组成部分,涵盖汽车吊、随车吊、挖掘机、推土机、压路机、工程抢险车等品类,承担着工程建设中的运载、挖掘、吊运、平整、抢修等关键工作,大幅提升了建筑工程施工效率,显著降低人力投入…...

从攻到防:实战演练基于Wireshark与Snort的DoS攻击检测

1. 拒绝服务攻击初探&#xff1a;原理与危害剖析 想象一下周末去热门餐厅吃饭的场景。当所有座位都被占满&#xff0c;门口还不断涌入大量"假顾客"时&#xff0c;真正的食客就会被挡在门外——这就是拒绝服务攻击&#xff08;DoS&#xff09;的生动写照。作为网络安…...

Ollama+Qwen2.5-VL搭建教程:打造你的智能视觉分析工具

OllamaQwen2.5-VL搭建教程&#xff1a;打造你的智能视觉分析工具 1. 引言&#xff1a;为什么选择Qwen2.5-VL 在当今AI技术快速发展的时代&#xff0c;视觉-语言多模态模型正成为解决复杂问题的关键工具。Qwen2.5-VL-7B-Instruct作为通义千问系列的最新成员&#xff0c;在视觉…...

开发者的第二曲线:2026年最赚钱的5个技术副业

在技术范式加速重构的2026年&#xff0c;软件质量保障的重要性已从“成本中心”跃升为“价值中心”。对于敏锐的软件测试从业者而言&#xff0c;这不仅是职业的深化&#xff0c;更是将专业壁垒转化为财富增长的绝佳契机。传统的“接私活”模式正在被更具复利效应和杠杆价值的“…...