简介
一般主从方式工作,这种模式通常有一个主设备和一个或多个从设备,通常采用的是4根线,它们是MISO(Master in Salve out)、MOSI(主输出,从输入)、SCLK(时钟,主机产生)、CS/SS(片选,一般由主机发送或者直接使能,通常为低电平有效)
参考 软件模拟SPI接口程序代码(4种模式)_淡水鱼-CSDN博客_模拟spi
软件模拟SPI
管脚初始化
SCLK,MOSI,CS 设置为GPIO_Mode_Out_PP 推挽输出
MISO 设置为GPIO_Mode_IPU 上拉输入
读写数据函数
uint8_t Soft_Spi_SendBytes(uint8_t byte)
{
uint8_t i,rvalue;
__set_PRIMASK(1);//关中断
GPIO_ResetBits(SPIPORT,SPICLK);
for(i = 0;i < 8;i++)
{
//发送数据
if((byte<<i)&0x80) GPIO_SetBits(SPIPORT,SPIMOSI);
else GPIO_ResetBits(SPIPORT,SPIMOSI);
GPIO_SetBits(SPIPORT,SPICLK);//上升沿
GPIO_ResetBits(SPIPORT,SPICLK);//拉低时钟
//接收数据
if(GPIO_ReadInputDataBit(SPIPORT,SPIMISO)) rvalue |= (i << (7 - i));
}
__set_PRIMASK(1);//开中断
return (rvalue);
}