`
anlx27
  • 浏览: 496624 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

什么时候需要用到RCC_APB2Periph_AFIO--复用IO时钟的使用

 
阅读更多

转自地址:http://hi.baidu.com/xiaoyuxiaoer/blog/item/4d034a121c56865621a4e9ea.html

 

需要用到外设的重映射功能时才需要使能AFIO的时钟
外部中断(EXTI)中与AFIO有关的寄存器是AFIO-EXTICR1、2、3,它们是用来选择EXTIx外部中断的输入脚之用。


举例:重映射USART2
USART2的TX/RX在PA.2/3 PA.2已经被Timer2的channel3使用需要把USART2的TX/RX重映射到PD.5/6库函数的调用


(1)使能被重新映射到的I/O端口时钟


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);


(2)使能被重新映射的外设时钟


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);


(3)使能AFIO功能的时钟(勿忘!)


    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);


(4)进行重映射

 

    GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE);

 

分享到:
评论

相关推荐

    基于STM32F103单片机+SD卡+LD3320语音识别模块实验例程DEMO源码.zip

    基于STM32F103单片机+SD卡+LD3320语音识别模块实验例程DEMO源码 void PlaySound(uint8 nCode); uint8 RunASR(void); void ProcessInt0(void);... RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); }

    periph_adc.rar

    NXP LPC54114单片机的AD采样例程。 The ADC example uses the internal temperature sensor as an input to channel 0 and converts the analog voltage to a digital value. The conversion is done at 3Hz and the...

    usart串口配置驱动DMA

    只要在宏定义上将串口开通就可以使用串口并且全部都配置好了,不需要再C文件里面去配置。 #define UART1_AFIO 0 //复用打开 #define UART1_Open 1 //开启串口 #define UART1_TX_BUF_SIZE 0XFF #define UART1_RX_...

    STM32 关于GPIO的问题集锦、

    - 如果使用 I2C 或其他复用功能,通常需要开启 AFIO 时钟:`RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);` - 对于某些外设(如 USART1),如果没有进行复用设置,则可能不需要显式开启 AFIO 时钟。 3. ...

    STM32重映射浅析.docx

    2. 使能Remap clock:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 3. 配置GPIO PinRemap:GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE); 4. 配置USART2的模式和波特率:USART_InitTypeDef结构体中...

    STM32查询方式的USART串口简单使用1

    这包括RCC_APB2Periph_AFIO(功能复用IO时钟)、RCC_APB2Periph_GPIOA(GPIOA时钟)和RCC_APB2Periph_USART1(USART1时钟)。通过调用RCC_APB2PeriphClockCmd函数,我们可以使能这些时钟。如果要同时开启所有APB2...

    深度解析STM32单片机JTAG的复用方法

    先来copy下 JTAG、SW接口的定义 JTAG:JTAG(JointTest Action Group;联合测试工作组)是一种国际标准测试协议,主要用于芯片内部测试。...RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,

    写第一个STM32程序常见错误及解决方法

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); } 四、常见的编译错误 在编程时,经常会出现一些编译错误,例如未定义的变量、类型不匹配等。解决方法是...

    stm32-复用功能和重映射.docx

    例如,一些开发者认为使用 IO 的复用功能就一定要启动 RCC_APB2Periph_AFIO 的时钟。但是,STM32 参考手册从来没说过使用 IO 的复用功能就一定要开启 AFIO 时钟。这是一个误区。 五、同时使用 USART2 和 TIM2 在 ...

    stm32重映射USART2方法及函数及理解.doc

    3. 使能 AFIO 功能的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 4. 进行重映射 GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE); 在上述步骤中,我们需要首先使能对应的时钟,然后进行重映射...

    STM32学习之路——通用定时器库函数分析(为产生PWM)

    RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,DISABLE); 分析:该指令的作用是APB总线上的外设的使能 二、对GPIOA进行配置。 我使用的是TIM2,TIM2有四个输出通道(TIM2_CH1,TIM2CH2,TIM2_CH3,TIM2_CH4)分别于PA.0...

    stm32各模块函数写法模版基于V35固件库.docx

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 使能复用IO时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; // 选择PD.06 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 设置为浮空...

    STM32系列常见问答集锦.docx

    2. 关于 stm32f103 端口复用的问题:在学习 GPIO 时,遇到到端口复用问题一直不能明白,例如 PB6 PB7 默认情况下是做普通 IO 使用的,当我想用 I2C1 是,我开启 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE)...

    JTAG引脚的使用

    RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE ); // 禁用JTAG,使能SWD GPIO_PinRemapConfig( GPIO_Remap_SWJ_JTAGDisable, ENABLE ); // 配置PA15为...

    STM32f10x系列SPI通信模块1

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOB, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2 , ENABLE); // 配置GPIO GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 |GPIO_Pin_14|...

    STM32 SPWM

    |RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); ``` 这段代码启动了TIM1、GPIOA、GPIOB和AFIO的时钟,同时启用了TIM3的时钟,这是后续配置外设的前提。...

    STM32F103RE学习笔记-串口中断学习

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1 ,ENABLE); 2. 中断配置 中断配置包括优先级组设定、USART1 中断使能和该中断的优先级。使用以下代码可以完成中断配置: ...

    STM32:STM32可以在此原始码上修改-修改

    STM32 STM32可以在此原始码上修改1,使用外部中断时注意IO口扩展的时钟定义,例如:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE); 2,使用串行打印printf函数时,需要注意以下几...

    学习笔记之STM32F103.pdf

    在 STM32F103 中,RCC_APB2Periph_AFIO 是一个重要的外设,需要用到外设的重映射功能和中断功能时才需要开启 AFIO 时钟,使用默认的复用功能时不需要开始 AFIO 时钟。在使用重映射时,需要使能被重新映射到的 I/O ...

    关于IO用作复用功能时的时钟设置注意要点

    当一个GPIO口被配置为复用功能时,不仅需要开启对应GPIO口的时钟,还需要开启复用功能时钟,即AFIO(Advanced Function IO)时钟。 `RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx | RCC_APB2Periph_AFIO, ENABLE);...

Global site tag (gtag.js) - Google Analytics