请问这样能操作io57 58吗?没反应
EVMDM368_GPIO_setDirection(57,0);
EVMDM368_GPIO_setDirection(58,1);
EVMDM368_GPIO_setOutput(57,1);
EVMDM368_GPIO_setOutput(58,0);
/* ------------------------------------------------------------------------ *
* *
* _GPIO_setDirection( number, direction ) *
* *
* number <- GPIO# *
* direction <- 0:OUT 1:IN *
* *
* ------------------------------------------------------------------------ */
Int16 EVMDM368_GPIO_setDirection( Uint16 number, Uint8 direction )
{
Uint32 bank_id = ( number >> 5 );
Uint32 pin_id = ( 1 << ( number & 0x1F ) );
Uint32* gpio_dir = ( Uint32* )( GPIO_BASE + GPIO_DIR_BASE + ( bank_id * GPIO_BASE_OFFSET ) );
if ( ( direction & 1 ) == GPIO_OUT )
*gpio_dir &= ~( pin_id ); // Set to OUTPUT
else
*gpio_dir |= ( pin_id ); // Set to INPUT
return 0;
}
/* ------------------------------------------------------------------------ *
* *
* _GPIO_setOutput( number, output ) *
* *
* number <- GPIO# *
* value <- 0:LOW 1:HIGH *
* *
* ------------------------------------------------------------------------ */
Int16 EVMDM368_GPIO_setOutput( Uint16 number, Uint8 output )
{
Uint32 bank_id = ( number >> 5 );
Uint32 pin_id = ( 1 << ( number & 0x1F ) );
Uint32* gpio_out = ( Uint32* )( GPIO_BASE + GPIO_OUT_DATA_BASE + ( bank_id * GPIO_BASE_OFFSET ) );
if ( ( output & 1 ) == 0 )
*gpio_out &= ~( pin_id ); // Set to LOW
else
*gpio_out |= ( pin_id ); // Set to HIGH
return 0;
}







