AT32學(xué)習(xí)筆記-IOMUX.md
# IOMUX
## 介紹
AT32F413 支持多達 55 個雙向 I/O 管腳,這些管腳分為 5 組,分別為 PA、PB、PC、PD 和 PF,每組最多包含 16 個管腳,每個管腳都可以實現(xiàn)與外部的通訊、控制以及數(shù)據(jù)采集的功能。??
每個管腳都支持通用功能輸入輸出(GPIO)或復(fù)用功能輸入輸出(IOMUX)。本章節(jié)詳細紹 IOMUX 功能,GPIO 功能詳見通用功能輸入輸出章節(jié)。??
每個管腳都通過軟件配置 GPIO 配置低寄存器(GPIOx_CFGLR)或 GPIO 配置高寄存器(GPIOx_CFGHR)??
寄存器設(shè)定成復(fù)用功能輸入輸出端口。??
大多數(shù)管腳支持多個外設(shè)的輸出功能映射,可通過 IOMUX 章節(jié)寄存器來選擇不同的外設(shè)輸入輸出功能。??
每個管腳都支持外部中斷功能。??
## 用例
### 關(guān)閉JTAG調(diào)試引腳
```c
// 要先開啟IOMUX外設(shè)時鐘
crm_periph_clock_enable(CRM_IOMUX_PERIPH_CLOCK, TRUE);
// 設(shè)置相應(yīng)的配置開啟
gpio_pin_remap_config(SWJTAG_CONF_010, TRUE);
```
| 位? |? 功能 |
| ------------ | ------------ |
| 000? |? 全功能調(diào)試接口 |
| 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);
```