总结

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
//后面肯定接的代码是
//重映射引脚
GPIO_PinRemapConfig(GPIO_FullRemap_TIM3, ENABLE);
//或者配置为中断线
GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
//或者配置为事件输出
GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

上面代码用于引脚重映射,数据手册Remap功能。

GPIO_InitStruct.GPIO_Mode = GPIO_Mode_AF_PP;

上面代码用于普通IO口复用功能,数据手册Default功能。

GPIO功能配置

每个端口可以被配置为8种模式:

typedef enum
{ GPIO_Mode_AIN = 0x0,//模拟输入--IO口用于模拟量输入GPIO_Mode_IN_FLOATING = 0x04,//浮空输入GPIO_Mode_IPD = 0x28,//下拉输入GPIO_Mode_IPU = 0x48,//上拉输入GPIO_Mode_Out_OD = 0x14,//开漏输出GPIO_Mode_Out_PP = 0x10,//推挽输出GPIO_Mode_AF_OD = 0x1C,//复用开漏输出--不作为普通IO口时使用GPIO_Mode_AF_PP = 0x18 //复用推挽输出--不作为普通IO口时使用
}GPIOMode_TypeDef;

AFIO端口复用

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

F1系列:

  • 配置复用功能重映射
    为了优化64脚或100脚封装的外设数目,可以把一些复用功能重新映射到其他引脚上。设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)实现引脚的重新映射。这时,复用功能不再映射到它们的原始分配上。
    复用功能重映射可以分为:没有重映射,部分重映射,完全重映射。
GPIO_PinRemapConfig(GPIO_Remap1_CAN1, ENABLE);
  • 配置外部中断线映射
GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);
  • 配置EVENTOUT事件输出
GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

F4系列:

GPIO_PinAFConfig(GPIOA,GPIO_PinSource9,GPIO_AF_USART1);

STM32通用和复用功能IO相关推荐

  1. stm32的afio初始化代码_STM32-IO-AFIO(复用功能IO和调试配置)

    最近在学习STM32,在BZ上一篇关于的串口通信文章里有这么一段代码:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD| RCC_APB2Periph_AFIO, ...

  2. stm32的IO口的复用功能(即AFIO)

    关于stm32的IO口的复用功能,可以参考这篇博客,写的不错. https://blog.csdn.net/u013082827/article/details/77543394

  3. 笔记:STM32——IO口的复用功能外部中断

    在STM32里面一般有五组寄存器分别是A--E组,每组寄存器的端口基本都有复用功能,这样可以使得端口的不被浪费,而达到极致利用. 使用复用端口的时候需要打开AFIO的时钟才能使用IO口的复用端口.每个 ...

  4. stm32驱动lcd段码io配置_I.MX6U处理器GPIO的命名复用与IO配置

    一.I.MX6U处理器GPIO的命名 STM32 中的 IO 都是 PA0~15.PB0~15 这样命名的,I.MX6U 的 IO 是怎么命名的呢?打开NXP官方提供的<I.MX6UL 参考手册 ...

  5. STM32F103:一.(4)JWAG功能IO复用

    JWAG功能IO复用 当想要使用JWAG功能引脚时,需要进行相关配置. ///开启复用时钟 注意PB3 PB4....是JWAG功能IO 要复用 ,,,还要用SWD下载!!! 出现问题时 一直按NRS ...

  6. IO复用功能占用时,普通GPIO功能使用

    标题 单片机IO口基础知识: 最近工作遇到问题:ARM主控的I2C引脚被使用做硬件I2C,不能将其改为普通IO进行读写操作: 查看IO驱动的得知,当引脚被用作其他复用功能时,IO口只是不能作为输出引脚 ...

  7. 单片机(STM32)的GPIO框图:─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能

    ─ 输入浮空 ─ 输入上拉 ─ 输入下拉 ─ 模拟输入 ─ 开漏输出 ─ 推挽式输出 ─ 推挽式复用功能 ─ 开漏复用功能 GPIO框图 保护电路: 高压保护--上拉二极管 低压保护--下拉二极管 输 ...

  8. 【STM32】谈谈STM32F10XX的定时器通道复用功能重映射

    写这篇的动机是我每次配置定时器硬件PWM的时候都要翻一遍手册,对着目录找内容实在麻烦,干脆写一篇博文直接pick出这一段. 本文参考:正点原子提供的STM32中文参考手册 关键词:STM32 定时器 ...

  9. STM32笔记 GPIO介绍及IO口操作 STM32F0 利用C语言位域实现仿位带操作

    文章目录 GPIO简介 工作方式 相关寄存器介绍 IO 操作步骤 IO口三种操作细解 附录:C语言相关 偏移地址与绝对地址 GPIO简介 GPIO:每个连接到I/O总线上的设备都有自己的I/O地址集, ...

最新文章

  1. C语言自学《四》---- 循 环
  2. OPNET仿真zigbee
  3. 【动态规划】关于转移方程的简单理解
  4. git status中文显示乱码
  5. CentOS上安装Python3.7.4
  6. ansys matlab 调用,matlab 调用ansys (转载)
  7. uva 11134——Fabled Rooks
  8. 如何在Ubuntu 18.04上安装Django
  9. Koa入门教程之示例应用
  10. deepin下深度终端使用ssh-agent(xshell中的xagent功能)
  11. 随想录(从kaldi学习语音识别)
  12. 工作之RF功能开发入门
  13. Dorado7常用JS以及常见错误
  14. Javaweb生成族谱树形图
  15. 钉钉如何调整组织架构_钉钉怎么给员工换部门?钉钉员工更改部门教程
  16. 安装 win7虚拟机
  17. win10远程连接服务器出现“这可能是由于credssp加密……”的原因及解决办法,win10家庭版无法找到gpedit.msc或者组策略或安全组策略
  18. 无线测量APP开发总结
  19. Unity 支持 3ds max 2021 物理材质吗?(FBX 出口)是否应该使用BPR材质?
  20. 宛如一个未来穿越者,终年33岁的印度数学天才,大数学家哈代说“他发现并创造了数学”

热门文章

  1. Java 设计模式之 Observer 模式
  2. linux服务启动redis自动启动不了,linux开机启动redis、nginx等服务
  3. fastapi学习(三):返回HTML页面
  4. java酒店信息管理系统_java实现酒店管理系统
  5. easymodbus_easymodbus4j基于netty的modbus协议快速开发工具
  6. android design包控件,Android Design包之TextInputLayout和TextInputEditText的组合使用【原创】...
  7. javaScript从入门到精通3.md
  8. [LeetCode] Z字型变换
  9. # 20155337 2016-2017-2 《Java程序设计》第十周学习总结
  10. JavaScript判断访问终端