#include "HL_sys_common.h" #include "HL_spi.h" #include "HL_sci.h" void sciDisplayText(sciBASE_t *sci, uint16 *text, uint32 length); void spi_func(void); #define UART (sciREG1) #define SPI1 (spiREG1) #define SPI2 (spiREG3) #define TX_SIZE 5 uint16 u16MasterTX_BUF[TX_SIZE] = {0x01,0x02,0x03,0x04,0x05}; extern uint16 u16MasterRX_BUF[TX_SIZE] = {0}; uint16 u16SlaveTX_BUF[TX_SIZE] = {0x06,0x07,0x08,0x09,0x0A}; extern uint16 u16SlaveRX_BUF[TX_SIZE] = {0}; extern uint8 u8result1 = 0U; extern uint8 u8result2 = 0U; void spi_func(void) { spiInit(); sciInit(); spiDAT1_t dataconfig1_t; dataconfig1_t.CS_HOLD = FALSE; dataconfig1_t.WDEL = TRUE; dataconfig1_t.DFSEL = SPI_FMT_1; dataconfig1_t.CSNR = 0xFE; if(SPI1== spiREG1) { spiTransmitAndReceiveData(SPI1, &dataconfig1_t, TX_SIZE, u16MasterTX_BUF, u16SlaveRX_BUF); } if(SPI2== spiREG3) { spiTransmitAndReceiveData(SPI2, &dataconfig1_t,TX_SIZE, u16SlaveTX_BUF, u16MasterRX_BUF); } u8result1 = SpiRxStatus(SPI1); u8result2 = SpiRxStatus(SPI2); } int main(void) { /* USER CODE BEGIN (3) */ spi_func(); while(1) { if(u8result1 == 2) { sciDisplayText(UART, u16MasterRX_BUF, 5U ); } if(u8result2 == 2) { sciDisplayText(UART, u16SlaveRX_BUF, 5U ) ; } } } /* USE void sciDisplayText(sciBASE_t *sci, uint16 *text, uint32 length) { while (length--) { while ((UART->FLR & 0x4) == 4); sciSendByte(UART, *text++); } }