转自地址: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源码 void PlaySound(uint8 nCode); uint8 RunASR(void); void ProcessInt0(void);... RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); }
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...
只要在宏定义上将串口开通就可以使用串口并且全部都配置好了,不需要再C文件里面去配置。 #define UART1_AFIO 0 //复用打开 #define UART1_Open 1 //开启串口 #define UART1_TX_BUF_SIZE 0XFF #define UART1_RX_...
- 如果使用 I2C 或其他复用功能,通常需要开启 AFIO 时钟:`RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);` - 对于某些外设(如 USART1),如果没有进行复用设置,则可能不需要显式开启 AFIO 时钟。 3. ...
2. 使能Remap clock:RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 3. 配置GPIO PinRemap:GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE); 4. 配置USART2的模式和波特率:USART_InitTypeDef结构体中...
这包括RCC_APB2Periph_AFIO(功能复用IO时钟)、RCC_APB2Periph_GPIOA(GPIOA时钟)和RCC_APB2Periph_USART1(USART1时钟)。通过调用RCC_APB2PeriphClockCmd函数,我们可以使能这些时钟。如果要同时开启所有APB2...
先来copy下 JTAG、SW接口的定义 JTAG:JTAG(JointTest Action Group;联合测试工作组)是一种国际标准测试协议,主要用于芯片内部测试。...RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO, ENABLE); } 四、常见的编译错误 在编程时,经常会出现一些编译错误,例如未定义的变量、类型不匹配等。解决方法是...
例如,一些开发者认为使用 IO 的复用功能就一定要启动 RCC_APB2Periph_AFIO 的时钟。但是,STM32 参考手册从来没说过使用 IO 的复用功能就一定要开启 AFIO 时钟。这是一个误区。 五、同时使用 USART2 和 TIM2 在 ...
3. 使能 AFIO 功能的时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); 4. 进行重映射 GPIO_PinRemapConfig(GPIO_Remap_USART2, ENABLE); 在上述步骤中,我们需要首先使能对应的时钟,然后进行重映射...
RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,DISABLE); 分析:该指令的作用是APB总线上的外设的使能 二、对GPIOA进行配置。 我使用的是TIM2,TIM2有四个输出通道(TIM2_CH1,TIM2CH2,TIM2_CH3,TIM2_CH4)分别于PA.0...
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); // 使能复用IO时钟 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6; // 选择PD.06 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 设置为浮空...
2. 关于 stm32f103 端口复用的问题:在学习 GPIO 时,遇到到端口复用问题一直不能明白,例如 PB6 PB7 默认情况下是做普通 IO 使用的,当我想用 I2C1 是,我开启 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE)...
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE ); // 禁用JTAG,使能SWD GPIO_PinRemapConfig( GPIO_Remap_SWJ_JTAGDisable, ENABLE ); // 配置PA15为...
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|...
|RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO,ENABLE); RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); ``` 这段代码启动了TIM1、GPIOA、GPIOB和AFIO的时钟,同时启用了TIM3的时钟,这是后续配置外设的前提。...
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO|RCC_APB2Periph_USART1 ,ENABLE); 2. 中断配置 中断配置包括优先级组设定、USART1 中断使能和该中断的优先级。使用以下代码可以完成中断配置: ...
STM32 STM32可以在此原始码上修改1,使用外部中断时注意IO口扩展的时钟定义,例如:RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_AFIO,ENABLE); 2,使用串行打印printf函数时,需要注意以下几...
在 STM32F103 中,RCC_APB2Periph_AFIO 是一个重要的外设,需要用到外设的重映射功能和中断功能时才需要开启 AFIO 时钟,使用默认的复用功能时不需要开始 AFIO 时钟。在使用重映射时,需要使能被重新映射到的 I/O ...
当一个GPIO口被配置为复用功能时,不仅需要开启对应GPIO口的时钟,还需要开启复用功能时钟,即AFIO(Advanced Function IO)时钟。 `RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOx | RCC_APB2Periph_AFIO, ENABLE);...