📄 led.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_GPIOF); // 使能GPIOD端口
GPIOPinTypeIn(GPIO_PORTF_BASE , GPIO_PIN_3); // 设置PF3输入类型
}
/***************************************************************************************************
功能:读取指定的GPIO状态
参数:GPIO_PIN_N是I/O名称,取值下列值之一或者它们之间的“或运算”组合形式
返回:无
***************************************************************************************************/
bool GPIO_READ(unsigned char GPIO_PIN_N)
{
bool GPIO_PIN_VALUE;
switch( GPIO_PIN_N )
{
case 0x01:
{
GPIO_PIN_VALUE = !(GPIOPinRead(GPIO_PORTF_BASE,GPIO_PIN_3)>>2);
if(GPIO_PIN_VALUE)
{
GPIO_PIN_VALUE = 1;
}
break;
}
case 0x02:
{
break;
}
}
return GPIO_PIN_VALUE;
}
/***************************************************************************************************
功能:把指定的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 + -