У меня проблема с синхронизацией SPI. Синхронизация всегда лажала. На анализаторе logi c я вижу, что сигналы не в правильном положении. Я правда не знаю, в чем может быть проблема. Приветствуются любые идеи.
Слушать - это мастер-код для синхронизации c:
#define SPI_SLAVE_SYNBYTE 0x53
#define SPI_MASTER_SYNBYTE 0xAC
uint8_t txackbytes = SPI_MASTER_SYNBYTE;
uint8_t rxackbytes = 0;
do
{
if(HAL_SPI_TransmitReceive_IT(&hspi1,(uint8_t *)&txackbytes, (uint8_t *)&rxackbytes, 1) != HAL_OK)
{
Error_Handler();
}
while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY){}
}while (rxackbytes!= SPI_SLAVE_SYNBYTE);
Подчиненный код:
uint8_t txackbyte = SPI_SLAVE_SYNBYTE;
uint8_t rxackbyte = 0;
do
{
if (HAL_SPI_TransmitReceive_IT(&hspi1, (uint8_t *)&txackbyte, (uint8_t *)&rxackbyte, 1) != HAL_OK)
{
Error_Handler();
}
while(HAL_SPI_GetState(&hspi1) != HAL_SPI_STATE_READY){}
}while (rxackbyte != SPI_MASTER_SYNBYTE);