[ST_MICRO]/STM322011. 1. 20. 18:04

STM32 SPI Slave Mode 테스트

STM32 SPI Slave Mode 테스트
SPI Slave통신에 시간을 많이 까먹었는데... 아무튼 아래와 같이 해결 했다.
Master로 부터 데이터 수신클럭 받고 SPI_I2S_ReceiveData()로 데이터를 받아주어야 했는데... 이부분을 생각 못해서 데이터가 이상하게 출력되었다.
 
  //SPI Master로 부터 클럭이 들어오면 데이터 받고
  while (SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE) == RESET);
  temp = SPI_I2S_ReceiveData(SPI2);
  //DebugPrint("SPI2 RX:%02X\r\n", temp);
  
  //원하는 데이터를 보낸다.
  //Send SPI2 data
  SPI_I2S_SendData(SPI2, cnt++);
  //DebugPrint("DataOut2\r\n");
 
 
Master에서는 그냥
    temp = SPI0_WriteReadByte(0x00);
    DebugPrint("Encoder=%02x\r\n", temp);
 
이렇게 하면 데이터 읽어 올 수 있다.
Posted by nexp

댓글을 달아 주세요