/** * @brief Main program. * @param None * @retval None */ void main(void) { int TestingTimes = 10; int Counter = 0; int TestData = 0; #if SPI_IS_AS_MASTER spi_t spi_master; SPI0_IS_AS_SLAVE = 0; spi_init(&spi_master, SPI0_MOSI, SPI0_MISO, SPI0_SCLK, SPI0_CS); DBG_SSI_INFO("--------------------------------------------------------\n"); for(Counter = 0, TestData=0xFF; Counter < TestingTimes; Counter++) { spi_master_write(&spi_master, TestData); DBG_SSI_INFO("Master write: %02X\n", TestData); TestData--; } spi_free(&spi_master); #else spi_t spi_slave; SPI0_IS_AS_SLAVE = 1; spi_init(&spi_slave, SPI0_MOSI, SPI0_MISO, SPI0_SCLK, SPI0_CS); DBG_SSI_INFO("--------------------------------------------------------\n"); for(Counter = 0, TestData=0xFF; Counter < TestingTimes; Counter++) { DBG_SSI_INFO(ANSI_COLOR_CYAN"Slave read : %02X\n"ANSI_COLOR_RESET, spi_slave_read(&spi_slave)); TestData--; } spi_free(&spi_slave); #endif DBG_SSI_INFO("SPI Demo finished.\n"); for(;;); }
int SPISlave::read(void) { return (spi_slave_read(&_spi)); }