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));
}