STM32——GPIO

总 :STM32——学习总纲

参考资料:

STM32F1系列参考手册-V10(中)

一、GPIO简介

1.1 GPIO 特点

 

1.2 GPIO 电气特性*

stm32芯片资料STM32F103ZET6(English)

1.3 GPIO 引脚分布

电源引脚:V开头

晶振引脚:

复位引脚:

下载引脚:通过 串口、JTAG、SWD下载有不同的下载IO

BOOT引脚:

GPIO引脚:p开口

二、IO端口基本结构

F1与F3、F7、H7的差异点在于上下拉电阻的位置。

F1的IO做为输入禁止使用上下拉电阻,这是由硬件决定的。

额外补充:

模电学习——场效应管(FET)

记忆:箭头方向就是电子流动方向。想要mos管导通,需要 gs 压差满足 箭头方向上的电子流通。

三、GPIO的八种模式(F1)

前置

STM32F1系列参考手册-V10(中)

3.1 输入浮空

特点:

3.2 输入上拉

特点:

弱上拉

3.3 输入下拉

特点:

3.4 模拟功能

特点:

输入只走模拟输入

3.5 开漏输出

寄存器介绍参考前置

特点:

开漏模式下,寄存器写0,NMOS管导通,此时IO口呈低电平↓

开漏模式下,寄存器写1,P、N mos管皆不导通,此时IO口为高阻态,F1系列想要输出高电平,需要外部的上拉电阻。

3.6 开漏复用

特点:

不由寄存器控制,由片上外设控制输出 

3.7 推挽输出

寄存器介绍参考前置

特点:

可控制 P/N MOS管的反向导通,控制 IO 口输出高低电平。

3.8 推挽复用 

特点:

不由寄存器控制,由片上外设控制输出

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

四、GPIO寄存器(F1)

STM32F1系列参考手册-V10(中)

“GPIOx_” 中的 ‘x’ 代表A~E组别,每个组有以下七个寄存器

4.1 端口配置 高、低 寄存器(Configuration Register Low/High)

此俩寄存器用于配置 IO 口的 工作模式和输出速度。

一组 IO 有16个,高、低寄存器每四个bit(CNFy、MODEy)配置一个IO,两个寄存器64bit,共配置16个IO。

当配置 bit 0b1000, 按配置是 上拉/下拉 输入模式,但不能确定上拉还是下拉,还需要ODR寄存器进行设置。

具体CR配置如下截图。

GPIOx_CRL

GPIOx_CRH

4.2 端口输出数据寄存器(Out Data Register)

GPIOx_ODR

16个 bit 对应16个IO。用于设置IO引脚输出时的高低电平。

还可通过此寄存器配置上拉/下拉输入配置。

4.3 端口输入数据寄存器(Input Data Register)

GPIOx_IDR

只读,读取对应 IO 的状态,用于判断引脚电平。

4.4 端口位设置/清除寄存器(Bit Set Reset Register)

GPIOx_BSRR

高16bit,写 1 清除ODR寄存器对应bit为0,写0无影响。

低16bit,写 1 清除ODR寄存器对应bit为1,写0无影响。

此寄存器用于控制 ODR寄存器

4.5 不建议使用的寄存器

    GPIOx_BRR

    GPIOx_LCKR

4.6 ODR 与 BSRR*

类似C中 volatile关键词,从原始地址获取值,以防缓存值与原始值不一致。

五、通用外设驱动模型(四步法)

六、GPIO配置步骤

七、编程实战

 7.1 点亮一个LED

 7.2 LED亮灭控制

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

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

相关文章

NUX MG-400 吉他效果器功能原理介绍

NUX MG-400 是一款多功能数字吉他效果器,它的核心原理就是把吉他的模拟信号,通过 A/D 转换变成数字信号 → 在 DSP 芯片上做建模运算 → 再通过 D/A 转换还原成模拟信号输出。 它的硬件 软件协作设计,基本可以拆成几个模块来看: …

Linux——进程管理和计划任务管理

文章目录前言一、程序与进程的关系1.1 程序与进程的定义1.2 父进程与子进程二、查看进程信息2.1 ps 命令(重点)2.2 动态查看进程信息top命令(重点)2.3 pgrep命令查询进程信息2.4 pstree命令以树形结构列出进程信息三、进程的启动方…

阿里云TranslateGeneral - 机器翻译SDK-自己封账单文件版本—仙盟创梦IDE

仙盟创梦IDE代码<?php /*** 阿里云机器翻译通用版API调用工具* 文档参考&#xff1a;https://help.aliyun.com/zh/machine-translation/developer-reference/api-alimt-2018-10-12-translategeneral*/ class AliyunTranslate {// 阿里云访问密钥private $accessKeyId;priva…

新字符设备驱动实验

经过前两章实验的实战操作&#xff0c;我们已经掌握了 Linux 字符设备驱动开发的基本步骤&#xff0c;字符 设备驱动开发重点是使用 register_chrdev 函数注册字符设备&#xff0c;当不再使用设备的时候就使用 unregister_chrdev 函数注销字符设备&#xff0c;驱动模块加载成功…

【更新公告】C++算法·线段树

之前的线段树知识都忘了qwq 现在在重新学线段树 下一篇就是写线段树了&#xff0c;例题已经找好了 A了1遍&#xff0c;但是用的玄学代码ee 下面是更新公告 更新公告 更新模式改为2~3天1篇 但是绝对高质量&#xff01;&#xff01; (平均质量分93够吗qwq) 如果例题好找尽量给出2…

pyqtgraph 库 右键菜单栏插件汉化

第一步&#xff0c;打开pyqtgraph文件夹。 第二步&#xff1a;打开graphicsItems&#xff0c;将PlotItem和ViewBox中的.py文件中的英文替换为中文&#xff0c;运行软件即可看到插件右键的菜单栏成为中文。 第三步&#xff1a;GraphicsScene中的&#xff0c;等找到相应的右键菜单…

docker镜像解决的一些问题

1 概述Docker镜像技术通过创新性的设计&#xff0c;彻底解决了应用交付领域的核心痛点&#xff0c;已经成为已成为云原生时代的事实标准。其核心价值在于​​通过标准化封装实现"一次构建&#xff0c;处处运行"​​&#xff0c;从根本上改变了软件交付的生命周期。2 …

10.从开始写LINUX内核——时钟中断

Linux 0.12 内核时钟中断实现&#xff1a;从初始化到中断响应时钟中断是操作系统中最基础且最重要的中断之一&#xff0c;它为系统提供时间基准&#xff0c;支持进程调度、定时器等核心功能。本文将基于 Linux 0.12 内核的 setup 程序框架&#xff0c;详细介绍时钟中断的完整实…

Effective C++ 条款45:运用成员函数模板接受所有兼容类型

Effective C 条款45&#xff1a;运用成员函数模板接受所有兼容类型核心思想&#xff1a;使用成员函数模板&#xff08;member function templates&#xff09;生成可接受兼容类型的函数&#xff0c;特别是泛型拷贝构造函数和赋值操作符&#xff0c;同时避免抑制编译器生成的默认…

华测科技(北京)的3D GPR数据分析

很高兴得到了张总的支持&#xff0c;获得了他们雷达的数据&#xff0c;并写了雷达数据读取和转换文件。1 背景搜索后发现 华测科技&#xff08;北京&#xff09;有限公司 的实力很强&#xff0c;因为他们的检测可达100km/h的时速。以前我只知道行业内 青岛中电众益 的3D GPR产…

X86、ARM与C86架构全面对比分析:性能、功耗、成本与生态系统

目录标题X86、ARM与C86架构全面对比分析&#xff1a;性能、功耗、成本与生态系统一、架构概述与发展背景1.1 X86架构&#xff1a;PC与服务器市场的传统霸主1.2 ARM架构&#xff1a;移动领域的王者与新兴服务器力量1.3 C86架构&#xff1a;国产x86兼容的创新尝试二、性能表现对比…

w嵌入式分享合集66

自己的原文哦~ https://blog.51cto.com/whaosoft/14132240 一、STM32的NRST管脚异常复位问题 这个问题是客户对开发的平台做EMS 浪涌测试的时候发生的&#xff0c;平台上使用了一个STM32G474 RCT6 MCU 。在某个等级的EMS 测试中&#xff0c; 客户发现MCU有时候会异常…

ZKmall开源商城的数据校验之道:用规范守护业务基石

在电商系统里&#xff0c;数据就像流淌的血液 —— 用户填的手机号、下单的商品数量、支付的金额&#xff0c;每一个数字、每一段文字都得靠谱。要是数据出了错&#xff0c;轻则订单下不了&#xff0c;重则钱货两空。ZKmall 开源商城作为一个分布式电商系统&#xff0c;每天要处…

QML实现数据可视化

界面样式 项目开发流程 1.通过QtCreator创建一个Qt Quick插件,插件命名为CarPanMod; 2.通过QtCreator创建一个Qt Quick Application,命名为QmlPro; 3.在插件CarPanMod中实现条形图,折线图和饼状图的绘制; 4.在应用程序QmlPro中,添加插件的导入路径; 5.在应用程序中,通过i…

实时计算 记录

《大数据架构师》海量实时广告流平台架构设计与实践 《架构师必备技能之集群资源评估.pdf》 参考&#xff1a; 大型广告系统架构与实现 架构图

gitee_流水线搭配 Dockerfile 部署vue项目

使用 gitee流水线搭配docker,编写Dockerfile文件进行自动部署Vue项目 gitee流水线 基本配置跟另外一篇文章中类似 gitee_配置自动部署vue项目-CSDN博客 需要修改的只是脚本执行 # 构建阶段脚本echo 清理旧文件 rm -rf dist echo 配置 Git 参数 git config --global http.pos…

Win10快速安装.NET3.5

按Windows键输入CONTROL打开“控制面板”点击“程序”点击“启用或关闭Windows功能”勾选“.NET Framework3.5&#xff08;包括.NET2.0和3.0&#xff09;”点击确定随后选择从更新下载&#xff08;具体提示忘记了&#xff09;&#xff0c;之后windows会自动安装

Docker Compose 入门教程

一、Docker Compose 简介 Docker Compose 是 Docker 官方提供的多容器编排工具&#xff0c;通过 YAML 文件&#xff08;docker-compose.yml&#xff09;定义应用程序的服务、网络和卷&#xff0c;实现一键式容器管理。其核心优势包括&#xff1a; 简化多容器管理&#xff1a;通…

Tomcat架构深度解析:从Server到Servlet的全流程揭秘

第一章&#xff1a;Tomcat架构概述1.1 Tomcat的角色与定位&#xff1a;Web服务器 vs Servlet容器Tomcat 是什么&#xff1f;它既是一种轻量级 Web 服务器&#xff0c;也是一种符合 Java EE 规范的 Servlet 容器。Web服务器&#xff1a;类似 Nginx、Apache HTTP Server&#xff…

【Java web】HTTP 协议详解

一、什么是 HTTP&#xff1f;—— 互联网的 "快递员"你有没有想过&#xff0c;当你在浏览器输入www.baidu.com并按下回车时&#xff0c;背后发生了什么&#xff1f;为什么几秒钟后就能看到百度首页&#xff1f;这一切的背后&#xff0c;都离不开一个叫HTTP的 "快…