📄 spi.h
字号:
/*
****************************************************************************************************
同步串行通讯接口相关函数
****************************************************************************************************
*/
/*
****************************************************************************************************
日志:
2008-07-04
创建该文件
****************************************************************************************************
*/
/*
****************************************************************************************************
函数说明:
InitSPI_Master:同步串行通讯初始化函数
SPI_Send: 输出单字符(1字节数据)
SPI_SendString:输出单多字符(多1字节数据)
****************************************************************************************************
*/
void InitSPI_Master(void) //SPI主设备初始化
{
IO_Set('C',0B00101000); //SDO,SCK设置为输出
IO_Set('A',0B00100000); //SS设置为输出高电平
IO_Clr('C',0B11101111); //SDI设置为输入
SSPCON=SSPEN|CKP; //SPI使能,SCK空闲为高电平,SCK=Fosc/4
SSPSTAT=0xc0; //SPI主控模式,末尾采样输入数据,在SCK下降沿发送数据
}
void SPI_Send(SPI_Data) //SPI发送一个字节,使用前先拉低SS
{
SSPBUF=SPI_Data; //数据移入SSPBUF发送
while(SSPIF==0); //等待发送完毕
SSPIF=0; //SSPIF清零
}
void SPI_SendString(uint8 *SPI_Data) //SPI发送多个字节,使用前先拉低SS
{ //IO_Clr('A',0B11011111);SS设置为输出低高电平
SSPBUF=(*SPI_Data); //数据指针指向数组,将数据移入SSPBUF发送
while(SSPIF==0); //等待发送完毕
SSPIF=0; //SSPIF清零
*SPI_Data++; //数据指针加1
}
/*void InitSPI_Slave(void)
{
IO_Set('C',0B00100000); //SDO设置为输出
IO_Clr('C',0B11100111); //SDI,SCK设置为输入,选择从动模式
IO_Init('A',0B00100000,0B11111111); //SS设置为输入
}*/
void SPI_Receive(void) //接收数据打开SPI中断
{
PIE1|=SSPIE; //打开SPI中断
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -