MPC5744学习-GPIO(1)
- GPIO (General Purpose Input/Output)
- GPIO in MPC5744
- GPIO输入、输出配置
- 按键实验
GPIO (General Purpose Input/Output)
GPIO接口具有以下特点:
通用性:GPIO接口可以用于连接各种类型的外部设备,如LED灯、按钮、传感器等。
可配置性:GPIO接口的引脚可以配置为输入或输出模式,以适应不同的应用场景。
可编程性:通过编程,可以控制GPIO接口的引脚状态,实现对外部设备的控制。
简单的信号传输:GPIO接口只传输简单的二进制信号,可以用于简单的通信和控制任务。
GPIO in MPC5744
MPC5748G中由System Integration Unit Lite2 (SIUL2)来提供对GPIO口的控制。提供寄存器让我们对GPIO管脚进行读写。
GPIO输入、输出配置
管脚做输出管脚得配置代码
SIUL2.MSCR[PC12].B.SSS = 0; /* Pin functionality as GPIO for external LED */
SIUL2.MSCR[PC12].B.OBE = 1; /* Output Buffer Enable on */
SIUL2.MSCR[PC12].B.IBE = 0; /* Input Buffer Enable off */
SIUL2.GPDO[PC12].B.PDO = 1; /* Turn LED off, note that the LEDs are connected backwards 0 for ON, 1 for OFF */
管脚做输入管脚的配置代码
SIUL2.MSCR[PF12].B.SSS = 0; /* Pin functionality as GPIO */
SIUL2.MSCR[PF12].B.OBE = 0; /* Output Buffer Enable off */
SIUL2.MSCR[PF12].B.IBE = 1; /* Input Buffer Enable on */
SSS 寄存器选择管脚模式,这里做普通输入输出。
OBE/IBE寄存器开启或关闭输入/输出的缓冲/驱动
配置管脚输出
寄存器地址
寄存器控制位描述
读取管脚电平
寄存器地址
寄存器控制位描述
其它
MPC5748G还支持GPIO口的并行读写,这里暂时不做深入讨论。
MSCR和IMCR也姑且不谈。
按键实验
初始化LED管脚PC12和按键管脚PF12
SIUL2.MSCR[PC12].B.SSS = 0; /* Pin functionality as GPIO for external LED */
SIUL2.MSCR[PC12].B.OBE = 1; /* Output Buffer Enable on */
SIUL2.MSCR[PC12].B.IBE = 0; /* Input Buffer Enable off */
SIUL2.GPDO[PC12].B.PDO = 1; /* Turn LED off, note that the LEDs are connected backwards 0 for ON, 1 for OFF */
SIUL2.MSCR[PF12].B.SSS = 0; /* Pin functionality as GPIO */
SIUL2.MSCR[PF12].B.OBE = 0; /* Output Buffer Enable off */
SIUL2.MSCR[PF12].B.IBE = 1; /* Input Buffer Enable on */
main函数进行循环判断,按下按键点灯,松开按键灭灯。
for(;;) {
if (SIUL2.GPDI[PF12].B.PDI == 0x01)
{
SIUL2.GPDO[PC12].B.PDO = 0;
}
else
{
SIUL2.GPDO[PC12].B.PDO = 1;
}
}