Jump to Navigation

STC单片机SPI接口代码

中断方式的SPI接口代码。发送字节数据时直接把内容写入SPDAT寄存器,字节发送完成后会触发OnSPI()函数。收到数据时会触发OnSPI()函数,客户程序从SPDAT读取字节数据。

 

SPI.h代码

void SPI_Init(void);

SPI.c代码

#include "Hardware.h"
#include "SPI.h"

#define MASTER

#define SPIF 0x80
#define WCOL 0x40

#define SSIG 0x80
#define SPEN 0x40
#define DORD 0x20
#define MSTR 0x10
#define CPOL 0x08
#define CPHA 0x04

#define SPDHH 0x00
#define SPDH 0x01
#define SPDL 0x02
#define SPDLL 0x03

extern void OnSPI();

void SPI_Init(void)
{
#ifdef MASTER
	SPCTL = SSIG|SPEN|MSTR|CPHA|SPDLL;
#else
	SPCTL = SSIG|SPEN|CPHA|SPDLL;
#endif

	AUXR |= 0x08;
	EADC_SPI = 1;
	SPSTAT = SPIF|WCOL;
}

void ADC_SPI_Routine(void) interrupt 5
{
	SPSTAT = SPIF|WCOL;
	OnSPI();
}


Main menu 2

about seo