50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
#include "platform.h"
|
|
#include <assert.h>
|
|
|
|
HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t len) {
|
|
HAL_StatusTypeDef ret;
|
|
if (txBuf && rxBuf) {
|
|
ret = HAL_SPI_TransmitReceive(&hspi3, (uint8_t*)txBuf, rxBuf, len, HAL_MAX_DELAY);
|
|
} else if (txBuf) {
|
|
ret = HAL_SPI_Transmit(&hspi3, (uint8_t*)txBuf, len, HAL_MAX_DELAY);
|
|
} else if (rxBuf) {
|
|
ret = HAL_SPI_Receive(&hspi3, (uint8_t*)rxBuf, len, HAL_MAX_DELAY);
|
|
}
|
|
|
|
if(ret != HAL_OK) {
|
|
exit(250);
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
|
|
void platformProtectST25RComm()
|
|
{
|
|
if (HAL_SPI_DeInit(&hspi3) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
|
|
hspi3.Init.Mode = SPI_MODE_MASTER;
|
|
hspi3.Init.Direction = SPI_DIRECTION_2LINES;
|
|
hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
|
|
hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
|
|
hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
|
|
hspi3.Init.NSS = SPI_NSS_SOFT;
|
|
hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
|
|
hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
|
|
hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
|
|
hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
|
|
hspi3.Init.CRCPolynomial = 7;
|
|
hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
|
|
hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
|
|
|
|
if (HAL_SPI_Init(&hspi3) != HAL_OK) {
|
|
Error_Handler();
|
|
}
|
|
}
|
|
|
|
void platformUnprotectST25RComm()
|
|
{
|
|
|
|
}
|