1.GPIO的工作原理

news2024/11/23 12:48:41

1.stm32引脚说明:

对于stm32f103zet6:
  1. 一共有7组io口;
  2. 每组io口有16个io;
  3. 一共有16*7=112个io;
  4. 分组情况为:GPIOA,GPIOB~GPIOG;

2.GPIO的基本结构:

3.GPIO的工作模式:

  1. 输入模式:输入浮空、输入上拉、输入下拉、模拟输入;
  2. 输出模式:开漏输出、开漏复用功能、推挽输出、推挽复用功能;
  3. 8种工作模式的详细介绍:
  4. 3种最大翻转速度:2MHz、10MHz、50MHz;

 4.8种工作模式:

  1. 输入浮空模式:
  2.  输入上拉模式:
  3.  输入下拉模式:
  4. 模拟输入模式:
  5.   
  6.  开漏输出模式:只可以输出强低电平,高电平依靠外部电阻拉高。输出端相当于三极管的集电极,得到高电平状态需要上拉电阻才行。适合于做电流型驱动,其吸收电流的能力相对较强(一般20mA以内)。
  7. 开漏复用输出模式;
  8. 推挽输出模式:可以输出强高低电平,连接数字器件;
  9. 推挽复用输出模式:

 5.GPIO相关配置寄存器:

每组GPIO端口的寄存器包括:

  1. 两个32位配置寄存器(GPIOx_CRL,GPIOx_CRH);
  2. 两个32位数据寄存器(GPIOx_IDR,GPIOx_ODR);
  3. 一个32位置位/复位寄存器(GPIOx_BSRR);
  4. 一个16位复位寄存器(GPIOx_BRR);
  5. 一个32位锁定寄存器(GPIOx_LCKR)。
  • 每个io端口位可以自由编程,然而io端口寄存器必须按32位字被访问(不允许半字或字节访问);
  • 每组io口有7个寄存器,一共可以控制一组GPIO的16个口;
  • GPIOx_CRL:端口配置低寄存器;
  • GPIOx_CRH:端口配置高寄存器;
  • GPIOx_IDR:端口输入寄存器;
  • GPIOx_ODR:端口输入寄存器;
  • GPIOx_BSRR:端口位设置/清除寄存器;
  • GPIOx_BRR:端口位清除寄存器;
  • GPIOx_LCKR:端口配置锁存寄存器。

6.端口复用功能:

stm32的大部分端口都具有复用功能,复用就是指一些端口不仅可以作为通用io口,还可以复用为一些外设引脚,例如PA9,PA10可以复用为stm32的串口1引脚。

端口复用的作用:最大限度的利用端口资源。

7.端口重映射功能:

就是将某些功能引脚映射到其他引脚,例如串口1默认引脚为PA9,PA10可以通过重映射映射到PB6,PB7。

重映射的作用:方便布线。

注意:所以的io口都可以作为中断输入;

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

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

相关文章

C++入门:类和对象(后)

目录 前言: 一:static成员 (1)概念 (2)特性 (3)例子 二:explicit关键字 三:内部类 (1)概念 (2)特性 (3)实例 四:匿名对象 (1)概念 (2)特性 (3)实例 五:拷贝对象时的一些编译器优化 (1)引入 …

Spring整合MyBatis底层原理

Spring整合MyBatis底层原理 项目结构图 项目代码 build.gradle需要进入的依赖 // testImplementation(platform("org.junit:junit-bom:5.9.1")) // testImplementation("org.junit.jupiter:junit-jupiter")implementation("org.aspectj:aspect…

电池SOC和动力电池OCV功率联合估计研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

爱心方程(理科生的浪漫?)

目录 前言 C/C 源代码 扩展 Java Python HTML 前言 这个在大一的时候就想找了,然后后面是找到了一个,但是忘记出处了。我决定把可以找到的所有爱心给整理一下,为了实现“理科生的浪漫”!!! C/C 首先…

你认为年轻人存款难吗?难啊难,难如上青天!!!

近日,有调查称“大概五分之一的年轻人存款在一万元以内。10万元存款是一个“坎”,存款超过10万就会超过53.7%的人。”“年轻人”“存款”两个词碰撞在一起,引来了广泛的关注和讨论。你认为年轻人存款难吗?可以从以下几个角度发表你…

Linux Nacos 设置systemctl service 并添加为开机启动

为方便在启动服务器时,不需要一个一个手动启动服务,需要把nacos设置为开机启动。方法如下: 在/usr/lib/systemd/system 目录下面添加nacos.service脚本: # 下面这一行必须有,不然会报错 #vim /usr/lib/systemd/system…

libevent(3)IO模型基础知识

一、用户态和内核态 我们知道现在的操作系统是分层的,内核封装了与底层的接口,通过系统调用提供给上层应用使用。 当进程运行在内核空间时,它就处于内核态;当进程运行在用户空间时,它就处于用户态。 当我们需要进行IO操…

【小沐学Python】网络爬虫之requests

文章目录 1、简介2、requests方法2.1 get2.2 post 3、requests响应信息4、requests的get方法4.1 url4.2 headers4.3 params4.4 proxies4.5 verify4.6 timeout4.7 cookies4.8 身份验证 3、测试代码3.1 获取网页HTML(get)3.2 获取网页HTML(带he…

【LeetCode热题100】打卡第26天:最大矩形

文章目录 最大矩形⛅前言🔒题目🔑题解 最大矩形 ⛅前言 大家好,我是知识汲取者,欢迎来到我的LeetCode热题100刷题专栏! 精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数…

随着ChatGPT、文言一心的大火,未来可能的生活工作方式

前面的文章笼统的扯了一些ChatGPT、文言一心的差异化,感觉还是不够明白直观。特地找了一份资料,通过基础能力、进阶能力、和一些垂直领域的几百个各种问题,来对比分析两者的回答情况,让大家可以有个更接地气的了解。 由于问题太多…

无限脉动:释放音乐和区块链在音乐领域的力量

音乐是一种永恒的通用语言,它将人们聚集在一起,超越了边界,在我们灵魂深处产生共鸣,创造联系。在当今数字时代,随着区块链技术和去中心化网络的出现,音乐世界正在经历一场深刻的变革。 我们在与艺术家合作&…

动态规划 DP (二)

3.二维动态规划 1) 力扣https://leetcode.cn/problems/minimum-path-sum/第一行的的路径只与左边的元素有关,第一列的路径只与上面的元素有关。 除了第一行和第一列,其他元素的路径取决于左边和上面元素的最小值。 只要每次都选择值最小的路径&#…

2021电工杯数学建模B题解题思路(光伏建筑一体化板块指数发展趋势分析及预测)

目录 一、前言 二、问题背景 三、具体问题 四、解题思路 (一)整体思路 (二)问题一 (三)问题二 (四)问题三 (五)问题四 (六)…

2023最新谷粒商城笔记之秒杀服务篇(全文总共13万字,超详细)

秒杀服务 秒杀具有瞬间高并发的特点,针对这一特点,必须要做限流异步缓存(页面静态化)独立部署 限流方式: 前端限流,一些高并发的网站直接在前端页面开始限流,例如:小米的验证码设计Nginx 限流&#xff0c…

ChatGPT从入门到精通,深入认识Prompt

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定让ChatGPT帮你高效实现职场办公!行动起来吧1、ChatGPT从入门到精通,一站式掌握办公…

Unity 中的旋转、targetFrameRate、 vSyncCount、Time

1. 旋转: Unity 中的旋转用eulerAngle 表示,但在内部是以quaternion存储。欧拉角旋转围绕三个轴进行三次独立旋转,依次是z、x、y。To convert from Euler angles to quaternions, you can use the Quaternion.Euler function.To convert a q…

Linux 文件操作

文章目录 一、task_struct 和 file 的关系二、文件操作的系统调用三、进程默认打开的三个文件四、文件重定向五、Linux 下一切皆文件 文件是在磁盘上创建出来的,当我们想进行文件操作时,根据冯诺依曼体系结构,CPU 只和内存交互,为…

【裸机开发】Reset 中断服务函数(汇编实现)

目录 一、Reset 中断服务函数的实现步骤 二、汇编实现 Reset 中断服务函数 1、禁止/打开全局中断 2、设置SP指针 3、清除 .bss 段 4、完整 Reset 中断服务函数 一、Reset 中断服务函数的实现步骤 实现 Reset 中断服务函数的基本步骤如下: 设置各个模式下的S…

关联式容器set和map

文章目录 一.容器二.set的介绍1.insert2.lower_bound&&upper_bound3.find和countfindcount 三. multiset四.map最特别的operator[] 四.multimap,因为允许键值冗余,所以它没有operator[],它的find返回的是中序遍历第一次遇到的节点五.…

ChatGPT办公自动化实战

ChatGPT从入门到精通,一站式掌握办公自动化/爬虫/数据分析和可视化图表制作 全面AI时代就在转角 道路已经铺好了 “局外人”or“先行者” 就在此刻 等你决定 让ChatGPT帮你高效实现职场办公!行动起来吧 1、ChatGPT从入门到精通,一站式掌握办…