STM32 端口复用重映射
什么是端口复用
STM32有很多个外设,外设的外部引脚与GPIO复用。也就是说一个GPIO可以重复使用外设的引脚,这个GPIO作为内置外设使用的时候,就叫做复用
举例:
GPIOA 9 可以作为普通PGIO使用,引脚复用为串口1的发送
GPIOA 10 可以作为普通PGIO使用,引脚复用为串口1的接收
GPIOA1 可以作为普通PGIO使用,复用为外部中断
举例:
串口1的发送接收引脚为PA9 PA10,我们把这两个引脚不用做PGIO,而复用为串口1的发送和接收引脚,叫做端口复用。
如何配置端口复用
端口复用配置过程:(以 USART1 : PA9 PA10串口 为例)
1.配置GPIO时钟:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA, ENABLE);
2.配置USART1时钟:
RCC_APB2PeriphClockCmd( RCC_APB2Periph_USART1, ENABLE);
3.如何配置相对应的GPIO模式
如何配置端口复用
USART_TX 发送端IO口 : 推挽复用输出模式
GPIO_Mode = GPIO_Mode_AF_PP;
USART_RX 接收端IO口 : 浮空输入/上拉输入
GPIO_Mode = GPIO_Mode_IN_FLOATING / GPIO_Mode = GPIO_Mode_IPU
1.配置GPIO时钟
2.配置复用的USART1时钟
3.配置GPIO结构体
什么是端口重映射
每个外设都有若干个输入输出引脚,一般这些引脚也都是固定不变的,但为了让开发工程师更好的安排引脚的功能和走向,引入了重映射的功能。 也就是一个外设的引脚除了具有默认的端口外,也还可以设置重映像寄存器来把这个外设映射到其他GPIO端口。
方便硬件工程师布线,减少干扰。
什么是部分重映射和完全重映射
部分重映射: 功能外设的部分引脚重新映射,还有一部分引脚是原来的默认引脚。
完全重映射: 功能外设的所有引脚都是重新映射。
重映射的配置过程
串口1为例:
① 使能GPIO引脚(重映射后的GPIO引脚)
②使能功能外设
③使能AFIO时钟,重映射必须使能AFIO时钟
RCC_APB2PeriphClockCmd( RCC_APB2Periph_AFIO, ENABLE);
④开启重映射:
void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);
案例看下篇文章STM32 通用定时输出PWM
相关文章
- 最全三大框架整合(使用映射)——Dept.hbm.xml
- Elasticsearch的智能判断:动态添加数据映射
- SAP CRM WebClient UI里如何找到Assignment block和settype的映射关系
- Windows 映射模式
- Atitit.病毒木马的快速扩散机制原理nio 内存映射MappedByteBuffer
- spring boot xml与dao 映射关系
- 【项目实战】如何创建和使用MyBatis的映射文件
- 基于Sine混沌映射的麻雀搜索算法-附代码
- 【Linux 内核 内存管理】内存管理系统调用 ⑤ ( 代码示例 | 多进程共享 mmap 内存映射示例 )
- 【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
- 通过灰度线性映射增强图像对比度实现PS中的色阶
- 牵一发动全身【Nhibernate基本映射】
- ORMBase对象/关系型数据库映射在MVC中的应用(二)
- JPA Map映射