[TI]/LM3S1xx2014. 6. 6. 21:27

LM3S101 SPI 테스트

LM3S101 SPI 테스트



LM3S101 SPI 초기화 함수

//----------------------------------------------------------------

// SPI 통신 초기화 함수

void SPI0_Init(void) 

{

SysCtlPeripheralEnable(SYSCTL_PERIPH_SSI0);

GPIOPinTypeSSI(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5);

GPIOPadConfigSet(GPIO_PORTA_BASE, GPIO_PIN_2 | GPIO_PIN_4 | GPIO_PIN_5,

GPIO_STRENGTH_4MA, GPIO_PIN_TYPE_STD_WPU);

 

SSIConfigSetExpClk(SSI0_BASE, SysCtlClockGet(), SSI_FRF_MOTO_MODE_0,

  SSI_MODE_MASTER, 1000000, 8);

SSIEnable(SSI0_BASE);

SPI0_SetSpeed(SPI_SPEED_1MHZ);

}

//----------------------------------------------------------------




LM3S101 SPI 송수신 함수

SUINT SPI0_WriteReadByte(SUINT Data)

{

    // Wait until there is space.

    while(!(HWREG(SSI0_BASE + SSI_O_SR) & SSI_SR_TNF))

    {

    }


    // Write the data to the SSI.

    HWREG(SSI0_BASE + SSI_O_DR) = Data;

    while(!(HWREG(SSI0_BASE + SSI_O_SR) & SSI_SR_RNE))

    {

    }


    // Read data from SSI.

    return (HWREG(SSI0_BASE + SSI_O_DR));

}


Posted by nexp

댓글을 달아 주세요