⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 spi.c

📁 NRF905无线通信处理器及SPI接口程序
💻 C
字号:
#include <ipOS.h>
#include "SPI.h"

u8_t DATA_BUF;

void SpiInit(void)
{
	*(u8_t *)RFDIR=0x80;   //F7输入,其余输出
	*(u8_t *)REDIR=0x0;
	asm("setb RFOUT,5
	     clrb RFOUT,4");   //SPI_CSN=1,Spi 	disable;SPI_SCK=0,Spi clock line init low
}


u8_t SpiRead(void)
{
	u8_t i;
	for (i=0;i<8;i++)
	{
		DATA_BUF=DATA_BUF<<1;
		asm("setb RFOUT,4");  //SPI_SCK=1;
		if ((*(u8_t *)RFIN)&0x80)	//读取最高位,保存至最末尾,通过左移位完成整个字节
		{
			DATA_BUF=DATA_BUF+1;
		}
		else
		{
			DATA_BUF=DATA_BUF+0;
		}
		asm("clrb RFOUT,4");  //SPI_SCK=0;
	 }
	 return DATA_BUF;
}

void SpiWrite(u8_t send)
{
	u8_t i;
	DATA_BUF=send;
	for (i=0;i<8;i++)
	{
		if (DATA_BUF&0x80)	//总是发送最高位
		{
			asm("setb RFOUT,1");  //SPI_MOSI=1;
		}
		else
		{
			asm("clrb RFOUT,1");  //SPI_MOSI=0;
		}
		asm("setb RFOUT,4");	// Set clock line high  SPI_SCK=1;
		DATA_BUF=DATA_BUF<<1;   // Shift DATA_BUF
		asm("clrb RFOUT,4");	// Set clock line low SPI_SCK=0;
	}
}



⌨️ 快捷键说明

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