spislave.c

来自「LPC系列 SPI slave 范例参考」· C语言 代码 · 共 34 行

C
34
字号

#include "LPC213x.h"

unsigned char SlaveRcv = 0xAA;
unsigned char SlaveSnd;


void SPI0_Isr(void) __irq
{
    if (S0SPSR) ;                  // (dummy) read status register

    SlaveRcv = S0SPDR;             // read data received
    S0SPDR   = SlaveSnd;           // next data to transmit

    S0SPINT  = 0x01;               // reset interrupt flag
    VICVectAddr = 0;               // reset VIC
}

void SPI0_Init(void)
{
    PINSEL0 |= 0x00005500;         // configure SPI0 pins
    S0SPCR   = 0x88;               /* 1000 1000     Initialize SPI hardware:
                                      |||| ||||
                                      |||| | -----> reserved
                                      ||||  ------> SPI clock phase select
                                      ||| --------> SPI clock polarity = low when idle
                                      || ---------> SPI slave mode
                                      | ----------> SPI data order = msb first
                                       -----------> SPI interrupt enabled        */

    VICVectAddr0  = (unsigned int) &SPI0_Isr;
    VICVectCntl0  = 0x2A;          // Channel0 on Source#10 ... enabled
    VICIntEnable |= 0x400;         // 10th bit is SPI0 interface
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?