AFIO 是什么?AFIO 时钟什么时候需要开启?

STM32 中的大部分 GPIO 都有复用功能,所以对于有复用功能的 I/O 引脚,还要开启其复用功能时钟。如 GPIO 的 pin4 可以用作 ADC1 的输入引脚,当我们把它作为 ADC1 使用时,需要开启 ADC1 的时钟:

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);
1
另外, STM32 的所有 GPIO 都引入到 EXTI 外部中断线上,使得所有的 GPIO 都能作为外部中断的输入源。所以如果把 GPIO 用作 EXTI 外部中断时,还需要开启 AFIO 时钟。

RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
1
那么,问题来了!
AFIO 是什么?AFIO 时钟什么时候需要开启?
  
我们从《STM32中文参考手册_V10》中找到:对寄存器 AFIO_EVCR、AFIO_MAPR 和 AFIO_EXTICRX 进行读写操作前,应当首先打开 AFIO 的时钟(设置 APB2 外设时钟使能寄存器 RCC_APB2ENR)。
也就是说:当你需要配置 AFIO 这些寄存器的时候,就需要把 RCC_APB2ENR 寄存器的 AFIO 位置‘1’打开 AFIO 时钟。

  
跟 AFIO 相关的寄存器有:
事件控制寄存器(AFIO_EVCR)
复用重映射和调试I/O 配置寄存器(AFIO_MAPR)
外部中断配置寄存器1(AFIO_EXTICR1)
外部中断配置寄存器2(AFIO_EXTICR2)
外部中断配置寄存器3(AFIO_EXTICR3)
外部中断配置寄存器4(AFIO_EXTICR4)
————————————————
版权声明:本文为CSDN博主「挨踢玩家」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_46323814/article/details/125606876

  • 7
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32 微控制器中,AFIO(Alternate Function Input/Output)是一个功能模块,用于管理引脚的多功能映射。通过 AFIO,你可以配置引脚的不同功能,例如复用功能、中断、事件输出等。 AFIO 模块主要用于以下几个方面: 1. 引脚复用功能:STM32 微控制器的引脚通常具有多个功能。通过 AFIO,你可以将引脚配置为特定的功能,例如串口、SPI、I2C 等。这样,你可以根据应用的需要,将引脚用于不同的外设或功能。 2. 中断和事件映射:一些外设或模块可以生成中断或事件信号,例如外部中断、定时器中断等。AFIO 模块允许你将这些中断或事件映射到特定的引脚上,以便在发生中断或事件时触发相应的处理程序。 3. 事件输出:某些 STM32 微控制器支持事件输出功能,可以在特定事件发生时,通过 AFIO 将事件信号输出到指定引脚上。这在某些特殊应用中很有用,例如触发外部设备或与其他系统进行同步操作。 为了使用 AFIO 模块,你需要STM32 的相关寄存器中进行配置。具体配置方法和寄存器的细节取决于你使用的 STM32 系列和型号。你可以参考相关的文档和参考手册,例如芯片数据手册和参考手册,以获取更详细的信息和示例代码。 总结来说,AFIO 模块是 STM32 微控制器中用于管理引脚多功能映射的功能模块,可以配置引脚的复用功能、中断映射和事件输出等。通过 AFIO,你可以灵活地配置引脚以满足不同的应用需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值