📄 spi.c
字号:
#include "Includes.h"
//static void Nop(void);
/*********************************************************************************************************
** 函数名称: Dat_Transmit
** 功能描述: 从SPI总线发送数据
** 全局变量: 无
** 调用模块: 无
********************************************************************************************************/
extern void SPI_Transmit(unsigned char dat)
{
unsigned char i,datbuf;
unsigned char j=50000;
EA=0;
_nop_();
Delay_Xms(1);
datbuf=dat;
SS=1;
while(SS&&j>0){j--;}
j=50000;
for(i=0;i<8;i++)
{
while(SPICLK&&j>0){j--;}
j=50000;
if(datbuf&0x80) MISO=1;
else MISO=0;
datbuf=(datbuf<<1);
while((~SPICLK)&&j>0){j--;}
}
EA=1;
}
/*********************************************************************************************************
** 函数名称: Data_Receive
** 功能描述:SPI总线接收数据
** 全局变量: 无
** 调用模块: 无
*******************************************************************************************************
extern unsigned char SPI_Receive(void)
{
unsigned char i,dat=0,temp;
bit bt;
SPICLK=1;
SS=0; //选中器件
SS=0;
Nop();
Nop();
for(i=0;i<8;i++)
{
SPICLK=1;
Nop();
Nop();
Nop();
SPICLK=0;
Nop();
Nop();
Nop();
bt=MISO;
if(bt) temp=0x01;
else temp=0x00;
dat=(dat<<1);
dat=(dat|temp);
}
SS=1;
SPICLK=1;
return dat;
}
**************************************************************************************
小延时
************************************************************************************
static void Nop(void)
{
;
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -