platform.c 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "platform.h"
  2. #include <assert.h>
  3. HAL_StatusTypeDef platformSpiTxRx(const uint8_t *txBuf, uint8_t *rxBuf, uint16_t len) {
  4. HAL_StatusTypeDef ret;
  5. if (txBuf && rxBuf) {
  6. ret = HAL_SPI_TransmitReceive(&hspi3, (uint8_t*)txBuf, rxBuf, len, HAL_MAX_DELAY);
  7. } else if (txBuf) {
  8. ret = HAL_SPI_Transmit(&hspi3, (uint8_t*)txBuf, len, HAL_MAX_DELAY);
  9. } else if (rxBuf) {
  10. ret = HAL_SPI_Receive(&hspi3, (uint8_t*)rxBuf, len, HAL_MAX_DELAY);
  11. }
  12. if(ret != HAL_OK) {
  13. exit(250);
  14. }
  15. return ret;
  16. }
  17. void platformProtectST25RComm()
  18. {
  19. if (HAL_SPI_DeInit(&hspi3) != HAL_OK) {
  20. Error_Handler();
  21. }
  22. hspi3.Init.Mode = SPI_MODE_MASTER;
  23. hspi3.Init.Direction = SPI_DIRECTION_2LINES;
  24. hspi3.Init.DataSize = SPI_DATASIZE_8BIT;
  25. hspi3.Init.CLKPolarity = SPI_POLARITY_LOW;
  26. hspi3.Init.CLKPhase = SPI_PHASE_2EDGE;
  27. hspi3.Init.NSS = SPI_NSS_SOFT;
  28. hspi3.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_64;
  29. hspi3.Init.FirstBit = SPI_FIRSTBIT_MSB;
  30. hspi3.Init.TIMode = SPI_TIMODE_DISABLE;
  31. hspi3.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE;
  32. hspi3.Init.CRCPolynomial = 7;
  33. hspi3.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE;
  34. hspi3.Init.NSSPMode = SPI_NSS_PULSE_DISABLE;
  35. if (HAL_SPI_Init(&hspi3) != HAL_OK) {
  36. Error_Handler();
  37. }
  38. }
  39. void platformUnprotectST25RComm()
  40. {
  41. }