蓝桥杯嵌入式学习STM32之端口复用及重映射

复用

这个其实很简单。
GPIO全称是啥?
General-Purpose Input /Output Ports
通用输入/输出端口
平常就相当于普通兵,你可以根据“战场情况”(甲方需求)让他变成其他兵种
比如说PA9 PA10是两个正常的管脚
蓝桥杯嵌入式学习STM32之端口复用及重映射_第1张图片
我们可以通过配置让他变成UART1的发送/接收引脚,这样的配置使得有限得I/O口得到丰富的外设功能。

配置方法

  1. 先使能I/O口的时钟。
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);
  1. 再使能外设的时钟。
void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState NewState);

蓝桥杯嵌入式学习STM32之端口复用及重映射_第2张图片

  1. 然后时钟都准备好了就正常配置端口。
    蓝桥杯嵌入式学习STM32之端口复用及重映射_第3张图片
    上方红色的由来见中文手册(如下):
    蓝桥杯嵌入式学习STM32之端口复用及重映射_第4张图片

重映射

就是外设的引脚可以重新定义到新的I/O口上。
蓝桥杯嵌入式学习STM32之端口复用及重映射_第5张图片
这里有个概念区分,部分重映射和完全重映射。
一个外设有很多口,部分重映射就是部分重映射。全部都重映射叫完全重映射。

可以通过查中文参考手册知道这些外设重映射的I/O口。
蓝桥杯嵌入式学习STM32之端口复用及重映射_第6张图片

配置过程

  1. 使能重映射以后的GPIO时钟
  2. 使能外设时钟
    前两步和上面一模一样。
  3. 使能AFIO时钟。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);

注:AFIO寄存器的功能
蓝桥杯嵌入式学习STM32之端口复用及重映射_第7张图片

4.开启重映射

void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

蓝桥杯嵌入式学习STM32之端口复用及重映射_第8张图片
红框里就是部分重映射和完全重映射的区别。

你可能感兴趣的:(STM32,蓝桥杯,嵌入式,stm32,蓝桥杯)