AT32学习笔记-IOMUX.md
# IOMUX
## 介绍
AT32F413 支持多达 55 个双向 I/O 管脚,这些管脚分为 5 组,分别为 PA、PB、PC、PD 和 PF,每组最多包含 16 个管脚,每个管脚都可以实现与外部的通讯、控制以及数据采集的功能。
每个管脚都支持通用功能输入输出(GPIO)或复用功能输入输出(IOMUX)。本章节详细绍 IOMUX 功能,GPIO 功能详见通用功能输入输出章节。
每个管脚都通过软件配置 GPIO 配置低寄存器(GPIOx_CFGLR)或 GPIO 配置高寄存器(GPIOx_CFGHR)
寄存器设定成复用功能输入输出端口。
大多数管脚支持多个外设的输出功能映射,可通过 IOMUX 章节寄存器来选择不同的外设输入输出功能。
每个管脚都支持外部中断功能。
## 用例
### 关闭JTAG调试引脚
```c
// 要先开启IOMUX外设时钟
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
// 设置相应的配置开启
gpio_pin_remap_config(SWJTAG_CONF_010, TRUE);
```
| 位 | 功能 |
| ------------ | ------------ |
| 000 | 全功能调试接口 |
| 001 | 无PB4/NJTRST |
| 010 | 只有SWDIO/SWCLK |
| 100 | 都没有 |
### 切换串口引脚
```c
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK,TRUE);
gpio_pin_remap_config(USART3_MUX_01,TRUE);
```