STM32F1和F4的GPIO口模式设置以及对应关系

2023-11-15

目录

GPIO端口8种模式

STM32F103的GPIO配置

STM32F407的GPIO配置

F4的GPIO的8种模式配置


GPIO端口8种模式

  1. 输入浮空

  2. 输入上拉

  3. 输入下拉

  4. 模拟输入

  5. 开漏输出

  6. 推挽输出

  7. 推挽复用功能

  8. 开漏复用功能

查看STM32F10x中文参考手册和STM32F4xx中文参考手册,确定上面8种模式是大体一致的。

image-20230714102800480

image-20230714101741442

STM32F103的GPIO配置

STM32F103的GPIO_InitTypedDef结构体如下:

 typedef struct
 {
   uint16_t GPIO_Pin;                /* 引脚 */
   GPIOSpeed_TypeDef GPIO_Speed;     /* 速度 */
   GPIOMode_TypeDef GPIO_Mode;       /* 工作模式 */
 }GPIO_InitTypeDef;

STM32F103的GPIO_Mode取值如下:

工作模式 F103对应值
输入浮空 GPIO_Mode_IN_FLOATING
输入上拉 GPIO_Mode_IPU
输入下拉 GPIO_Mode_IPD
模拟输入 GPIO_Mode_AIN
开漏输出 GPIO_Mode_Out_OD
推挽输出 GPIO_Mode_Out_PP
推挽复用功能 GPIO_Mode_AF_PP
开漏复用功能 GPIO_Mode_AF_OD

STM32F103的GPIO_Speed取值如下:

最大输出频率 F103对应值
10MHz GPIO_Speed_10MHz
2MHz GPIO_Speed_2MHz
50MHz GPIO_Speed_50MHz

STM32FF10x手册中的部分说明:

image-20230714104912280

STM32F407的GPIO配置

STM32F407的GPIO_InitTypedDef结构体如下:

 typedef struct
 {
   uint32_t GPIO_Pin;              /* 引脚 */
   GPIOMode_TypeDef GPIO_Mode;     /* 工作模式 */
   GPIOSpeed_TypeDef GPIO_Speed;   /* 速度 */
   GPIOOType_TypeDef GPIO_OType;   /* 输出类型 */
   GPIOPuPd_TypeDef GPIO_PuPd;     /* 上拉/下拉 */
 }GPIO_InitTypeDef;

STM32F407的GPIO_Mode取值如下:

工作模式 F407对应值
输入 GPIO_Mode_IN
输出 GPIO_Mode_OUT
复用功能 GPIO_Mode_AF
模拟 GPIO_Mode_AN

STM32F407的GPIO_Speed取值如下:

最大输出频率 F407对应值
2MHz GPIO_Speed_2MHz
25MHz GPIO_Speed_25MHz
50MHz GPIO_Speed_50MHz
100MHz GPIO_Speed_100MHz

STM32F407的GPIO_OType取值如下:

输出类型 F407对应值
推挽 GPIO_OType_PP
开漏 GPIO_OType_OD

STM32F407的GPIO_PuPd取值如下:

极性 F407对应值
浮空 GPIO_PuPd_NOPULL
上拉 GPIO_PuPd_UP
下拉 GPIO_PuPd_DOWN

F4的GPIO的8种模式配置

模式类型 GPIO_MODE GPIO_OTYPE GPIO_PUPD
输入浮空 GPIO_Mode_IN 不配置或任意配置 GPIO_PuPd_NOPULL
输入上拉 GPIO_Mode_IN 不配置或任意配置 GPIO_PuPd_UP
输入下拉 GPIO_Mode_IN 不配置或任意配置 GPIO_PuPd_DOWN
模拟功能 GPIO_Mode_AN 不配置或任意配置 GPIO_PuPd_NOPULL
开漏输出 GPIO_Mode_OUT GPIO_OType_OD GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN
推挽输出 GPIO_Mode_OUT GPIO_OType_PP GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN
推挽复用功能 GPIO_Mode_AF GPIO_OType_PP GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN
开漏复用功能 GPIO_Mode_AF GPIO_OType_OD GPIO_PuPd_NOPULL / GPIO_PuPd_UP / GPIO_PuPd_DOWN

PS:开漏输出、推挽输出、推挽复用功能、开漏复用功能的GPIO_PUPD三种都可设置,是根据F4手册说的“具有上拉或下拉功能的XXXX”,不过得分情况使用。如果是输出,一般选GPIO_PuPd_NOPULL,引脚能够正确地输出高电平低电平信号;如果是输入,具体看应用默认输入值0或1,0则GPIO_PuPd_DOWN,1则GPIO_PuPd_UP。

STM32F407手册部分说明:

image-20230714132552457

image-20230714132626849

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STM32F1和F4的GPIO口模式设置以及对应关系 的相关文章

  • 串口通讯第一次发送数据多了一字节

    先初始化IO再初始化串口 导致第一次发送时 多出一个字节数据 优化方案 先初始化串口再初始化IO 即可正常通讯
  • allegro画PCB如何更新元件的PCB封装

    allegro画PCB如何更新元件的PCB封装 一 更新单个器件的PCB封装 首先菜单栏选择Place gt Update Symbols 如下图 注意此案例是更新了C0805封装 中更新封装 就将上图第二个红色方框中的勾选即可 二 更新某
  • 1.69寸SPI接口240*280TFT液晶显示模块使用中碰到的问题

    1 69寸SPI接口240 280TFT液晶显示模块使用中碰到的问题说明并记录一下 在网上买了1 69寸液晶显示模块 使用spi接口 分辨率240 280 给的参考程序是GPIO模拟的SPI接口 打算先移植到FreeRtos测试 再慢慢使用
  • PD SINK协议芯片系列产品介绍对比-ECP5701、FS312A、CH221K、HUSB238、AS225KL

    目录 一 ECP5701 二 FS312A 三 CH221K 四 HUSB238 五 AS225KL 在如今快节奏生活不断蔓延的背景下 人们对各种事情的处理也渐渐地开始要求在保证质量的情况下 不断加快 手机快充就是一个典型的例子 从开始的1
  • 【MCU简单且容易理解的工作原理】

    SOC是啥 System on Chip 一个芯片 但是片上有好多东西的意思 市面上的AI芯片 包括你知道的麒麟xxx 骁龙xxx等等一些列手机芯片都是SOC 对于SOC设计者来讲 显然要知道码农们码出来的一行行代码是如何在SOC上跑起来的
  • 2.4G SOC收发芯片XL2412P,适用于无线键鼠,遥控器等多种场景

    XL2412P芯片是 款高性能低功耗的SOC集成无线收发芯片 集成MO核MCU 工作在2 400 2 483GHz世界通用ISM频段 该芯片集成了射频接收器 射频发射器 频率综合器 GFSK 调制器 GFSK解调器等功能模块 并且支持一对多
  • 普冉32位单片机 PY32C642,M0+内核,1.7 V ~ 5.5 V宽工作电压

    PY32C642 单片机采用高性能的 32 位 ARM Cortex M0 内核 宽电压工作范围 嵌入 24Kbytes Flash 和 3 Kbytes SRAM 存储器 最高工作频率 24 MHz 包含多种不同封装类型产品 工作温度范围
  • 会stm32有机会进大公司吗?

    今日话题 会stm32有机会进大公司吗 我本科期间参与了飞思卡尔和电赛等比赛 使用过多种单片机 但渐渐发现单片机只是其中的一小部分 不要过分迷恋所谓的单片机基础和技巧 更值得深入研究的是C语言 如果你对此感兴趣 我愿意无偿分享一个资源包 其
  • STM32F4XX的12位ADC采集数值超过4096&右对齐模式设置失败

    文章目录 一 前言 二 问题1 数值超过4096 三 问题1的排错过程 四 问题2 右对齐模式设置失败 五 问题2的解决方法 5 1 将ADC ExternalTrigConv设置为0 5 2 使用ADC StructInit 函数 一 前
  • 嵌入式开发--STM32G4系列片上FLASH的读写

    这个玩意吧 说起来很简单 就是几行代码的事 但楞是折腾了我大半天时间才搞定 原因后面说 先看代码吧 读操作 读操作很简单 以32位方式读取的时候是这样的 data IO uint32 t 0x0800F000 需要注意的是 当以32位方式读
  • 库函数点亮Led

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门
  • STM32H5 Nucleo-144 board开箱

    文章目录 开发板资料下载 目标 点亮LD1 绿 LD2 黄 和LD3 红 三个LED灯 开箱过程 博主使用的是STM32CubeMX配置生成代码 具体操作如下 打开STM32CubeMX File gt New project 选择开发板型
  • systick定时器

    systick定时器 文章目录 前言 一 前期疑惑 二 解答 1 关于systick是阻塞的吗 2 非阻塞 三 软件编写 总结 前言 这边记录systick相关知识点 一 前期疑惑 在学习systick志气啊 其实对于systick还是一脸
  • Cortex-M3与M4权威指南

    处理器类型 所有的ARM Cortex M 处理器是32位的精简指令集处理器 它们有 32位寄存器 32位内部数据路径 32位总线接口 除了32位数据 Cortex M处理器也可以有效地处理器8位和16位数据以及支持许多涉及64位数据的操作
  • STM32 上的 ADC 单次转换

    我正在研究 STM32 F103x 上的 ADC 编程 并从最简单的情况 单次转换开始 测量内部温度传感器 连接到 ADC1 的值 并使用 USART 将其发送到 COM 端口 目标似乎很明确 但是当我尝试将源代码下载到闪存时 它不会向 C
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 使用 STM32F0 ADC 单独读取不同的输入

    STM32F072CBU 微控制器 我有多个 ADC 输入 并且希望单独读取它们 STMcubeMX 生成样板代码 假设我希望按顺序读取所有输入 但我无法弄清楚如何纠正这个问题 这篇博文 http blog koepi info 2015
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • STM32F4 定时器 - 计算周期和预分频,以生成 1 ms 延迟

    我在用STM32F407VGT6 with CubeMX 因此 我从通用定时器开始 但我被预分频值和周期值所困扰 基本上我想每隔一段时间生成一个定时器中断n 其中 n 1 2 3 ms 并执行一些任务 计算周期和预分频值的公式有很多变化 公

随机推荐

  • 100道Python练习题集合,拿去刷

    看书 看视频都可以帮助你学习代码 但都只是辅助作用 学好Python 最重要的还是多敲代码 多刷题 不知道怎么找题刷题的小伙伴 可以看看小编今天带来的 Python100练习题 覆盖了基本语法 数据结构 算法等多个方面 100道Python
  • moviepy音视频开发:使用credits1给视频加片头片尾字幕

    前往老猿Python博文目录 一 概述 在 moviepy音视频剪辑 视频基类VideoClip子类DataVideoClip UpdatedVideoClip ImageClip ColorClip TextClip类详解 介绍了Text
  • 通过NodeJS对接微信客服实现第三方API管理消息

    最近项目有个需求 要对接微信客服 之前也没做过 一脸懵逼 我属于那种不知其然 就心里很没底的人 感觉不知道怎么去开发了 所以就趁着后端还没开发完接口 先自己对接一下试试 接下来就是整个流程 首先我们先注册一个企业微信 这一步是必须的 因为我
  • map根据属性排序、取出map前n个后n个

    map 按 key 升序排序 map 按 key 升序排序 param map return private Map
  • linux top命令详解

    一 top简介 top命令经常用来监控linux的系统状况 是常用的性能分析工具 能够实时显示系统中各个进程的资源占用情况 在Linux操作系统中 top是使用最频繁 也是比较全的一个命令 Top命令类似于Windows系统的任务管理器工具
  • python找不到reshape_python – AttributeError:’Tensor’对象没有属性’reshape’

    我想写一个去噪自动编码器 为了可视化的目的 我想打印出损坏的图像 这是我想要显示损坏图像的测试部分 def corrupt x noise tf random normal shape tf shape x mean 0 0 stddev
  • 调速阀------电磁阀

    目录 调速阀 节流阀简图的理解 安装方式 注意 安装注意事项 电磁阀 1 直动式电磁阀 2 分步直动电磁阀 3 先导式电磁阀 二位二通电磁阀 二位三通电磁阀 二位四通电磁阀 三位三通电磁阀 三位四通电磁阀 管道联系式电磁阀 直接控制式电磁阀
  • 芷菏随身wifi14.5 相关教程

    芷菏随身wifi 芷菏都知道 sim一般都是没有密码 直接可以切换的 是可以直接用ARDC连接投屏到电脑上的 按住随身wifi上的按钮 进入9008模式 可以将随身wifi刷boot模块 再从投屏中修补面具 起到root的效果 这款sim1
  • python发送邮件(带附件)

    usr bin python coding UTF 8 import logging import smtplib from email mime multipart import MIMEMultipart from email mime
  • jquery mobile和ajax,使用jquery mobile不可忽视的细节

    jQuery Mobile 是创建移动WEB应用程序的框架 在学习和使用该框架的过程中 有一些心得想要和大家分享一下 一 框架 因为是移动端开发 所以不要忘了下面这个重要的meta标签哦 使用jquery mobile要引入相应的css文件
  • 数据的探索性分析

    探索一下 数据分析的起点 数据分类 一 描述性分析 整理数据 定义 主要作用 可视化技术 定义 主要作用 常用方法 二 相关性分析 分析数据 定义 主要作用 相关性分类 相关性测定 三 假设检验 分析数据 定义 作用 步骤 相对理论 常见的
  • 对某底层硬件模块编写底层程序的主要步骤及经验

    一 禁止硬件模块运行 配置好相关寄存器 这里的硬件模块是指那些CPU发一些指令后就能独立工作的模块 二 置位硬件模块控制寄存器的使能位 使能硬件模块 三 明确功能 搞清楚哪些工作是由硬件来做的 哪些该由软件来执行 四 当由硬件模块来做的工作
  • NAPI(New API)的一些浅见

    NAPI真的是kernel开发者词穷想的名字吧 你看看kernel里面各种名字 不知道为啥就不能起个好听点的 言归正传 wiki https en wikipedia org wiki New API 给出的解释是NAPI是一种用于网络设备
  • PyTorch基础练习-task4(用PyTorch实现多层网络)

    PyTorch基础练习 task4 一 引入模块 读取数据 二 构建网络模型 三 损失函数与优化器 四 开始训练模型 五 模型预测结果评估 一 引入模块 读取数据 从sklearn包中直接加载糖料病数据集 二 构建网络模型 三 损失函数与优
  • 【uniapp】uni-datetime-picker组件修改分钟选项为每15分钟的时间间隔 (0 15 30 45)

    一开始没打算写这个功能实现 毕竟不是自己写的组件 而是去改uniapp的扩展组件 但是确实在修改的时候上网查 没有查到关于这种功能实现的准确信息 所以在功能完成后也写一份 希望能给需要的人一个参考 做项目遇到一个关于时间预约的功能 最开始给
  • JetBrains全家桶(IDEA、Pycharm等各个产品)在国内高速下载地址

    JetBrains产品在国内有CDN下载通道 下面给出各个产品的下载链接 在某些情况下 官网无法访问 可以使用下面的链接直接下载 只需要照模样修改后缀名和年份版本号即可 操作系统后缀 Win exe 安装版 Win win zip 解压版
  • MySQL按条件删除指定数据(删除整行)

    delete from tb where update tb set string helloworld where name louyujing and type 1
  • Frame,Panel和三种布局管理器

    窗体Frame 举例 单个窗体 frame窗体存在在内存中 看不见 Frame frame new Frame 我的JAVA窗体 设置窗体的可见性 frame setVisible true 设置窗体的尺寸 frame setSize 40
  • 基于python、keras的鸟类分类识别——深度学习举一反三案例

    界面用tkinter来制作 这是一个深度学习的练习项目 目前是1 0版本以后会逐步完善
  • STM32F1和F4的GPIO口模式设置以及对应关系

    目录 GPIO端口8种模式 STM32F103的GPIO配置 STM32F407的GPIO配置 F4的GPIO的8种模式配置 GPIO端口8种模式 输入浮空 输入上拉 输入下拉 模拟输入 开漏输出 推挽输出 推挽复用功能 开漏复用功能 查看