46 lines
1.2 KiB
C
46 lines
1.2 KiB
C
/*
|
|
* 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
|
|
|
|
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_ */
|