**
IO所有配置及功能解释
IO寄存器配置及部分功能解释
-
1、 点灯第一步:使能外设时钟
说明:使能外设时钟可以开启对应的功能,使能后的引脚才能使用,目的为降低功耗以及发热情况。
方法:打开I.MX6ULL参考手册,找到CCGR寄存器地址,写入0xffffffff使能对应外设时钟
时钟控制寄存器章节。
同理,使能所有CCGR寄存器 -
2、配置GPIO1_IO03 PIN复用为GPIO
手册第32章,寄存器
IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03
简单易懂,配置为0101即复用为GPIO。
-
3、配置GPIO电气属性
手册第32章 寄存器IOMUXC_SW_PAD_CTL_PAD_GPIO1_IO03
bit0 : 高低电平切换速度选择 0低速1高速
bit5:3 :驱动能力选择
000 DSE_0_output_driver_disabled_ — output driver disabled; 禁止输出
001 DSE_1_R0_260_Ohm___3_3V__150_Ohm_1_8V__240_Ohm_for_DDR_ — R0(260 Ohm @
3.3V, 150 Ohm@1.8V, 240 Ohm for DDR) -R0:260欧姆@3.3v;150欧姆@1.8v
010 DSE_2_R0_2 — R0/2 -R0的二分之一,一下类同
011 DSE_3_R0_3 — R0/3
100 DSE_4_R0_4 — R0/4
101 DSE_5_R0_5 — R0/5
110 DSE_6_R0_6 — R0/6
111 DSE_7_R0_7 — R0/7
bit7:6 :速度选择
00 SPEED_0_low_50MHz_ — low(50MHz) 最低50MHz
01 SPEED_1_medium_100MHz_ — medium(100MHz)中间值100MHz
10 SPEED_2_medium_100MHz_ — medium(100MHz)中间值100MHz
11 SPEED_3_max_200MHz_ — max(200MHz) 最大200MHz
bit11 :漏极开路
0 ODE_0_Open_Drain_Disabled — Open Drain Disabled :禁止漏极开路
1 ODE_1_Open_Drain_Enabled — Open Drain Enabled: 使能漏极开路
bit12 :使能字段
0 PKE_0_Pull_Keeper_Disabled — Pull/Keeper Disabled: 禁止拉/保持
1 PKE_1_Pull_Keeper_Enabled — Pull/Keeper Enabled: 使能拉/保持
bit13 :使能输出状态保存
使能输出状态保存器可以在内核供电关掉之后,使IO的输出自动维持在关电之前的逻辑状态(需要注意的是输出状态保存器不能与上下拉同时工作)。其价值同样可以体现在低功耗的应用中
0 PUE_0_Keeper — Keeper :保持
1 PUE_1_Pull — Pull :上拉
bit15:14 :设置上下拉电阻阻值
主要作用是提高输出信号的驱动能力、确定输入信号的电平(防止干扰)
00 PUS_0_100K_Ohm_Pull_Down — 100K Ohm Pull Down :100K欧姆的拉低
01 PUS_1_47K_Ohm_Pull_Up — 47K Ohm Pull Up :47K欧姆的拉高
10 PUS_2_100K_Ohm_Pull_Up — 100K Ohm Pull Up :100K欧姆的拉高
11 PUS_3_22K_Ohm_Pull_Up — 22K Ohm Pull Up :22K欧姆的拉高
bit16 :磁滞使能字段,作为输入时有效
0 HYS_0_Hysteresis_Disabled — Hysteresis Disabled:禁止磁滞
1 HYS_1_Hysteresis_Enabled — Hysteresis Enabled: 使能磁滞
即为:
-
4、设置GPIO为输出
手册第28章 寄存器GPIO1_GDIR
-
5、拉低IO点亮LED
手册第28章 寄存器GPIO1_DR
-
6、设置循环
loop:
b loop