Master_Control/Core/Inc/SPI_Slave_Communication.h

47 lines
1.2 KiB
C
Raw Normal View History

2022-07-03 17:24:42 +02:00
/*
* SPI_Slave_Communication.h
*
* Created on: Jun 16, 2022
* Author: max
*/
#ifndef SPI_SLAVE_COMMUNICATION_H_
#define SPI_SLAVE_COMMUNICATION_H_
#include "AIR_State_Maschine.h"
#include "Slave_Monitoring.h"
#include "main.h"
#include "stm32g4xx_hal_crc.h"
#define SET_SHUNTDATA 0x01
#define SET_TSSTATE 0x02
#define GET_TSSTATE 0x03
#define GET_ERROR 0x04
#define GET_MEASUREMENTS 0x05
#define TOGGLE_STATUS_LED 0x06
#define SET_SHUNTDATA_CMD_LEN 14
#define SET_TSSTATE_CMD_LEN 2
#define GET_TSSTATE_CMD_LEN 1
#define GET_ERROR_CMD_LEN 1
#define GET_MEASUREMENTS_CMD_LEN 1
2022-07-30 22:25:09 +02:00
#define SPI_FRAME_TIMEOUT 300
2022-07-03 17:24:42 +02:00
void spi_communication_init(SPI_HandleTypeDef* spi,
AIRStateHandler* airstatemaschine);
void checkSPI();
void set_SPI_errorInfo(AMSErrorHandle* errorinfo);
uint8_t checkXor(uint8_t* buf, uint8_t len);
uint8_t calculateChecksum(uint8_t* buf, uint8_t len);
uint8_t receiveData(uint16_t length);
uint8_t transmitData(uint16_t length);
void InterSTMFrame();
void HAL_SPI_RxCpltCallback(SPI_HandleTypeDef* hspi);
void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef* hspi);
void HAL_SPI_ErrorCallback(SPI_HandleTypeDef* hspi);
#endif /* SPI_SLAVE_COMMUNICATION_H_ */