spi.c

来自「MCP2515.rar」· C语言 代码 · 共 67 行

C
67
字号
/*
sbit a0=ACC^0;			//定义ACC的位,利用ACC操作速度最快
sbit a1=ACC^1;
sbit a2=ACC^2;
sbit a3=ACC^3;
sbit a4=ACC^4;
sbit a5=ACC^5;
sbit a6=ACC^6;
sbit a7=ACC^7;

void SpiSend(unsigned char Buf)
{
	ACC=Buf;
	SPI_SCK=0;SPI_DO=a7;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a6;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a5;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a4;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a3;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a2;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a1;SPI_SCK=1;
	SPI_SCK=0;SPI_DO=a0;SPI_SCK=1;
	SPI_DO=1;
}

unsigned char SpiReceive(void)
{
	SPI_SCK=0;SPI_SCK=1;a7=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a6=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a5=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a4=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a3=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a2=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a1=SPI_DO;
	SPI_SCK=0;SPI_SCK=1;a0=SPI_DO;
	return(ACC);
}
*/

void SpiSend(unsigned char Buf)
{ 
	unsigned char i;
	i=8;
	do
	{
		SPI_SCK=0;													
		SPI_DO=0;
		if(Buf&0x80) SPI_DO=1;							//先送出高位
		Buf<<=1;														//左移一位
		SPI_SCK=1;
	}
	while(--i);
	SPI_DO=1;
}
unsigned char SpiReceive(void)
{
	unsigned char i,Buf;
	for(i=0;i<8;i++)
	{
		SPI_SCK=0;
		Buf<<=1;														//左移一位
		SPI_SCK=1;
		Buf&=0xfe;													//第一位清0												
		if(SPI_DI) Buf|=0x01;								//置1
	}
	return(Buf);
}

⌨️ 快捷键说明

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