第1章 查看原理图确定引脚1.1 LED灯的引脚GPIO0B7 ---------编号为------------ 0 * 32 1 * 8 7 151.2 CAN的引脚GPIO4_C3 ---------编号为------------ 4 * 32 2 * 8 3 147GPIO4_C2 ---------编号为------------ 4 * 32 2 * 8 2 1461.3 串口的引脚GPIO3C4 ---------编号为------------ 3 * 32 2 * 8 4 116GPIO3C5 ---------编号为------------ 3 * 32 2 * 8 5 1171.4 I2C的引脚第2章 查看芯片手册确定复用功能寄存器地址2.1 LED灯引脚的复用功能寄存器地址PMU_GRF_GPIO0B_IOMUX_H 0xFDC20000 0x000C 0xFDC2000C;并且该寄存器的14:12是GPIO0_B7的复用功能寄存器的值。也就是0xFDC2000C[14:12] 的值是设置复用功能的。0xFDC2000C[14:12] 0x000表示设置GPIO0_B7为GPIO;0xFDC2000C[14:12] 0x001表示设置GPIO0_B7为PWM;0xFDC2000C[14:12] 0x010表示设置GPIO0_B7为CPU_AVS;2.2 CAN引脚的复用功能寄存器地址GRF_GPIO4C_IOMUX_L 0xFDC60000 0x0070 0xFDC20070;并且该寄存器的14:12是GPIO4_C3的复用功能寄存器的值。也就是0xFDC20070[14:12] 的值是设置复用功能的。0xFDC20070[14:12] 0x000表示设置GPIO4_C3为GPIO;0xFDC20070[14:12] 0x001表示设置GPIO4_C3为PWM;0xFDC20070[14:12] 0x010表示设置GPIO4_C3为SPI;0xFDC20070[14:12] 0x011表示设置GPIO4_C3为CAN1;0xFDC20070[14:12] 0x100表示设置GPIO4_C3为PCIE30X2;0xFDC20070[14:12] 0x101表示设置GPIO4_C3为I2S3;GRF_GPIO4C_IOMUX_L 0xFDC60000 0x0070 0xFDC20070;并且该寄存器的10:8是GPIO4_C2的复用功能寄存器的值。也就是0xFDC20070[10:8] 的值是设置复用功能的。0xFDC20070[10:8] 0x000表示设置GPIO4_C2为GPIO;0xFDC20070[10:8] 0x001表示设置GPIO4_C2为PWM;0xFDC20070[10:8] 0x010表示设置GPIO4_C2为SPI;0xFDC20070[10:8] 0x011表示设置GPIO4_C2为CAN1;0xFDC20070[10:8] 0x100表示设置GPIO4_C2为PCIE30X2;0xFDC20070[10:8] 0x101表示设置GPIO4_C2为I2S3;2.3 串口引脚的复用功能寄存器地址GRF_GPIO3C_IOMUX_H 0xFDC60000 0x0054 0xFDC20054;并且该寄存器的6:4是GPIO3_C5的复用功能寄存器的值。也就是0xFDC20054[6:4] 的值是设置复用功能的。0xFDC20054[6:4] 0x000表示设置GPIO3_C5为GPIO;0xFDC20054[6:4] 0x001表示设置GPIO3_C5为PWM;0xFDC20054[6:4] 0x010表示设置GPIO3_C5为SPDIF;0xFDC20054[6:4] 0x011表示设置GPIO3_C5为GMAC1;0xFDC20054[6:4] 0x100表示设置GPIO3_C5为USART7_RX;0xFDC20054[6:4] 0x101表示设置GPIO3_C5为I2S1;GRF_GPIO3C_IOMUX_H 0xFDC60000 0x0054 0xFDC20054;并且该寄存器的2:0是GPIO3_C4的复用功能寄存器的值。也就是0xFDC20054[2:0] 的值是设置复用功能的。0xFDC20054[2:0] 0x000表示设置GPIO3_C5为GPIO;0xFDC20054[2:0] 0x001表示设置GPIO3_C5为PWM;0xFDC20054[2:0] 0x010表示设置GPIO3_C5为VOP_PWMM1;0xFDC20054[2:0] 0x011表示设置GPIO3_C5为GMAC1;0xFDC20054[2:0] 0x100表示设置GPIO3_C5为USART7_TX;0xFDC20054[2:0] 0x101表示设置GPIO3_C5为PDM;2.4 I2C引脚的复用功能寄存器地址第3章 通过IO命令查看复用功能寄存器的值3.1 LED灯引脚的复用功能寄存器的值roottopeet:~# io -r 0xFDC2000C fdc2000c: 01fdc2000c寄存器中的值为0x0000 0001由于fdc2000c[14:12] 0x000所以表示是GPIO可以点灯。3.2 CAN引脚的复用功能寄存器的值3.3 串口引脚的复用功能寄存器的值3.4 I2C引脚的复用功能寄存器的值第4章 通过IO命令操作寄存器控制GPIO4.1 实验流程4.2 实验操作序号操作名备注操作方式操作方式1确定要操作的GPIOGPIO0_B72查看复用功能寄存器(IOMUX)PMU_GRF_GPIO0B_IOMUX_H 0xFDC20000 0x000C 0xFDC2000C[14:12] 0x000io -r 40xFDC2000C3确定GPIO0_B7的基地址0xFDD600004确定方向寄存器的地址(DDR)0xFDD60000 0x0008io -r 40xFDC20008io -w 40xFDC200085确定数据寄存器的地址(DR)0xFDD6000 0x0000(1) 确定要操作的GPIOGPIO0_B70xFDC20000 0x000C0xFDC2000C[14:12] 0x000io -r 4 0xFDC2000C3写复用功能寄存器由于查出来的复用功能寄存器的值为所以需要写io -w 4 0xFDC20008(4) 查看方向寄存器GPIO_SWPORT_DDR_L0xFDD60000 0x0008 0xFDD600080xFDD60008[31] 1 # 写使能0xFDD60008[15] 1 # 配置为输出(5) 写方向寄存器由于查出来的复用功能寄存器的值为所以需要写io -w 4 0xFDC20008(6) 查看数据寄存器GPIO_SWPORT_DR_L0xFDD6000 0x0000 0xFDD6000xFDD60000[31] 1 # 写使能0xFDD60000[15] 0 # 配置为低电平(7) 写数据寄存器由于查出来的复用功能寄存器的值为所以需要写io -w 4 0xFDC20008