给你参考一下代码吧:
/**************************************************************************************
* FunctionName : GPIOSetValue()
* Description : 写端口数据
* EntryParameter : port num, bit position, bit value
* ReturnValue : None
**************************************************************************************/
void GPIOSetValue(uint8 portNum, uint8 bitPosi, uint8 bitVal)
{
if (bitVal)
{
LPC_GPIO[portNum]->FIOSET = (1 << bitPosi);
}
else
{
LPC_GPIO[portNum]->FIOCLR = (1 << bitPosi);
}
}
/**************************************************************************************
* FunctionName : GPIOStatusValue()
* Description : 读端口数据
* EntryParameter : port num, bit position
* ReturnValue : 读端口值,返回1和0
**************************************************************************************/
uint8 GPIOStatusValue(uint8 portNum, uint8 bitPosi)
{
uint8 value = 0x00;
if (((LPC_GPIO[portNum]->FIOPIN) & (1 << bitPosi)) != 0x00)
{
value = 0x01;
}
return value;
}