📄 gpio.c
字号:
// 包含必要的头文件
#include "LED.H"
// 将较长的标识符定义成较短的形式
#define SysCtlPeriEnable SysCtlPeripheralEnable
#define SysCtlPeriDisable SysCtlPeripheralDisable
#define GPIOPinTypeOut GPIOPinTypeGPIOOutput
#define GPIOPinTypeIn GPIOPinTypeGPIOInput
/***************************************************************************************************
功能:初始化GPIO
参数:
返回:无
***************************************************************************************************/
void GPIO_Init(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOE); // 使能GPIOE端口
GPIOPinTypeOut(GPIO_PORTE_BASE , GPIO_PIN_0); // 设置PE0为输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOE); // 使能GPIOG端口
GPIOPinTypeOut(GPIO_PORTE_BASE , GPIO_PIN_1); // 设置PE1输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOE); // 使能GPIOE端口
GPIOPinTypeOut(GPIO_PORTE_BASE , GPIO_PIN_2); // 设置PE2输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOE); // 使能GPIOE端口
GPIOPinTypeOut(GPIO_PORTE_BASE , GPIO_PIN_3); // 设置PE3输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOA); // 使能GPIOA端口
GPIOPinTypeOut(GPIO_PORTA_BASE , GPIO_PIN_2); // 设置PA2输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); // 使能GPIOD端口
GPIOPinTypeOut(GPIO_PORTD_BASE , GPIO_PIN_1); // 设置PD1输入类型
SysCtlPeriEnable(SYSCTL_PERIPH_GPIOD); // 使能GPIOD端口
GPIOPinTypeIn(GPIO_PORTB_BASE , GPIO_PIN_4); // 设置PD1输入类型
}
/***************************************************************************************************
功能:读取指定的GPIO状态
参数:GPIO_PIN_N是I/O名称,取值下列值之一或者它们之间的“或运算”组合形式
返回:无
***************************************************************************************************/
bool GPIO_READ(unsigned char GPIO_PIN_N)
{
switch( GPIO_PIN_N )
{
case 0x01:
{
return GPIOPinRead(GPIO_PORTB_BASE,GPIO_PIN_4)>>3;
break;
}
case 0x02:
{
break;
}
}
}
/***************************************************************************************************
功能:把指定的GPIO置低
参数:ucLED是LED名称,取值下列值之一或者它们之间的“或运算”组合形式
返回:无
***************************************************************************************************/
void GPIO_L(unsigned char GPIO_PIN_N)
{
switch( GPIO_PIN_N )
{
case 0x01:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_0 , 0x00 ); // PE0输出低电平
break;
}
case 0x02:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_1 , 0x00); // PE1输出低电平
break;
}
case 0x03:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_2 , 0x00); // PE2输出低电平
break;
}
case 0x04:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_3 , 0x00); // PE3输出低电平
break;
}
case 0x05:
{
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , 0x00); // PA2输出低电平
break;
}
case 0x06:
{
GPIOPinWrite(GPIO_PORTD_BASE , GPIO_PIN_1 , 0x00); // PD1输出低电平
break;
}
default : break;
}
}
/***************************************************************************************************
功能:把指定的GPIO置高
参数:ucLED是LED名称,取值下列值之一或者它们之间的“或运算”组合形式
返回:无
***************************************************************************************************/
void GPIO_H(unsigned char GPIO_PIN_N)
{
switch ( GPIO_PIN_N )
{
case 0x01:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_0 , 0x01); // PE0输出高电平
break;
}
case 0x02:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_1 , 0x01 << 1); // PE1输出高电平
break;
}
case 0x03:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_2 , 0x01 << 2); // PE2输出高电平
break;
}
case 0x04:
{
GPIOPinWrite(GPIO_PORTE_BASE , GPIO_PIN_3 , 0x01 << 3); // PE3输出高电平
break;
}
case 0x05:
{
GPIOPinWrite(GPIO_PORTA_BASE , GPIO_PIN_2 , 0x01 << 2 ); // PA2输出高电平
break;
}
case 0x06:
{
GPIOPinWrite(GPIO_PORTD_BASE , GPIO_PIN_1 , 0x01 << 1); // PD1输出高电平
break;
}
default: break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -