This example shows typical use of the Serial Peripheral Interface (SPI) module in interrupt mode.
- Source code:
#include "drivers.h"
#define SPI0_SS PIN1
#define SPI0_SCK PIN2
#define SPI0_MOSI PIN3
#define SPI0_MISO PIN4
uint16 spi_tx_cnt, spi_rx_cnt, spi_cnt, spi_cnt2;
void main (void)
{
spi_tx_cnt = 1; spi_rx_cnt = 0; spiBuff[0]=0x06; spi_cnt=0;
spi_tx_cnt = 1; spi_rx_cnt = 1; spiBuff[0]=0x05; spi_cnt=0;
spi_tx_cnt = 2; spi_rx_cnt = 8; spiBuff[0]=0x03; spiBuff[1]=0; spi_cnt=0;
while(1);
}
#if defined(__ICCARM__)
#pragma diag_suppress=Pa082
#endif
{
{
{
if (spi_tx_cnt) {
spi_cnt++;
if (!--spi_tx_cnt)
}
else {
if (spi_rx_cnt) {
spi_rx_cnt--;
}
}
}
{
if (!spi_tx_cnt) {
spi_cnt++;
else spiBuff[spi_cnt++] = temp;
}
if (!spi_rx_cnt) {
}
}
{
}
{
}
}
}
- Toolchain support:
IAR EWARM 7.40.7 | CodeWarrior 10.6 | KEIL uVision 5.15 | CrossWorks 3.6 | ATOLLIC TrueStudio 5.3.0 | Kinetis Design Studio 3.0.0 |
♦ | ♦ | ♦ | ♦ | ♦ | ♦ |