5.9 GPIO ·使用GPIO注意要点 ■引脚设置为输出方式时,输出状态由IOxSET和 IOxCLR中最后操作的寺存器决定; ■大部分GPIO输出为推挽方式(个别引脚为开漏输 出),正常拉出/灌入电流均为4A(短时间极限值 40mA); ■复位后默认所有GPIO为输入模式
5.9 GPIO • 使用GPIO注意要点 ▪引脚设置为输出方式时,输出状态由IOxSET和 IOxCLR中最后操作的寄存器决定; ▪大部分GPIO输出为推挽方式(个别引脚为开漏输 出),正常拉出/灌入电流均为4mA(短时间极限值 40mA); ▪复位后默认所有GPIO为输入模式
·GPIO应用示例一设置P0.0输出高电平 IOOSET out 1 0 P0.0 IOODIR IOOCLR PINSELO IOOPIN C代码: PINSELO &0xFFFFFFFC; (1)设置引脚连接模块,P0.0为GPIO IOODIR = 0x00000001; (2)设置P0.0口方向,设置为输出 IOOSET =0x00000001: (3)设置P0.0口状态,输出高电平
. PINSEL0 &= 0xFFFFFFFC; IO0DIR |= 0x00000001; IO0SET = 0x00000001; . C代码: PINSEL0 IO0DIR IO0CLR IO0PIN IO0SET in out 1 0 • GPIO应用示例——设置P0.0输出高电平 P0.0 (1) 设置引脚连接模块,P0.0为GPIO (2) 设置P0.0口方向,设置为输出 (3) 设置P0.0口状态,输出高电平 1
·GPIO应用示例一读取P0.0引脚状态 IOOSET out 0 0 P0.0 IOODIR IOOCLR PINSELO IOOPIN C代码: uint32 Pinstat; PINSELO &=0xFFFFFFFC; (1)设置引脚连接模块,P0.0为GPIO IOODIR &= OxFFFFFFFE; (2)设置P0.0口方向,设置为输入 PinStat (3)从IO0PN读取引脚状态
. uint32 PinStat; PINSEL0 &= 0xFFFFFFFC; IO0DIR &= 0xFFFFFFFE; PinStat = IO0PIN; . C代码: PINSEL0 IO0DIR IO0CLR IO0PIN IO0SET in out 1 0 • GPIO应用示例——读取P0.0引脚状态 P0.0 (1) 设置引脚连接模块,P0.0为GPIO (2) 设置P0.0口方向,设置为输入 (3) 从IO0PIN读取引脚状态 IO0PIN
·GPIO应用示例一输出多位数据至IO口 在需要将多位数据同时输出到某几个O口线时,通常使用 IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存 器实现。后者可以在多个O口上直接输出0和1电平。 本例将8位无待号整数变量Data的值输出到P0.0~P0.7。 使用IOxSET和IOxCLR实现: #define DataBus 0xFF PINSELO &0xFFFF0000; (1)设置引脚连接模块,P0.0~7为GPIO IOODIR DataBus; (2)设置P0.0口方向,设置为输出 IOOCLR DataBus; (3)清零8位IO口的输出状态 IOOSET Data; (4)Data变量中为l的位将输出高电平 数据输出线: 0x?? 0x00y Data
#define DataBus 0xFF PINSEL0 &= 0xFFFF0000; IO0DIR |= DataBus; IO0CLR = DataBus; IO0SET = Data; . 使用IOxSET和IOxCLR实现: • GPIO应用示例——输出多位数据至IO口 (1) 设置引脚连接模块,P0.0~7为GPIO (2) 设置P0.0口方向,设置为输出 (3) 清零8位IO口的输出状态 在需要将多位数据同时输出到某几个IO口线时,通常使用 IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存 器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整数变量Data的值输出到P0.0~P0.7。 (4) Data变量中为1的位将输出高电平 数据输出线: 0x?? 0x00 Data
·GPIO应用示例一输出多位数据至O口 在需要将多位数据同时输出到某几个IO口线时,通常使用 IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存 器实现。后者可以在多个0口上直接输出0和1电平。 本例将8位无待号整数变量Data的值输出到P0.0~P0.7。 使用IOxPIN实现: #define DataBus 0xFF PINSELO &0xFFFF0000; (1)设置引脚连接模块,P0.0为GPIO IOODIR DataBus; (2)设置P0.0口方向,设置为输出 IOOPIN =(IOOSET 0xFFFFFF00)Data; (3)写IO0PN,输出数据 数据输出线: 0x?? Data 与前者对比: 0x?? 0x00) Data
#define DataBus 0xFF PINSEL0 &= 0xFFFF0000; IO0DIR |= DataBus; IO0PIN = (IO0SET & 0xFFFFFF00) | Data; . • GPIO应用示例——输出多位数据至IO口 (1) 设置引脚连接模块,P0.0为GPIO (2) 设置P0.0口方向,设置为输出 (3) 写IO0PIN,输出数据 在需要将多位数据同时输出到某几个IO口线时,通常使用 IOxSET和IOxCLR来实现,在某些情况下也可以使用IOxPIN寄存 器实现。后者可以在多个IO口上直接输出0和1电平。 本例将8位无符号整数变量Data的值输出到P0.0~P0.7。 使用IOxPIN实现: 数据输出线: 0x?? Data 与前者对比: 0x?? 0x00 Data