没有SPI控制器的单片机也可以用IO口来模拟SPI通信,IO口的每一个高低电平变化都由软件来控制,相对麻烦一点,占用CPU的资源也比较多。
可以在网上找相关的协议,简单地说就是一个时钟线一个数据线,规定上升沿还是下降沿读取数据。比如发一个字节的00111100,从低位开始发送,上升沿读取数据,就是下面的流程 拉低时钟,数据线为0(最低位),当数据线信号稳定后,拉高时钟,这样就把最低位发出去了 拉低时钟,数据线为0(次低位),当数据线信号稳定后,拉高时钟,这样就把次低位发出去了 拉低时钟,数据线为1(次低位),当数据线信号稳定后,拉高时钟,这样就把第3位发出去了 …… 还有一个使能端信号要在发数据的时候置位
简单点的就是用带spi协议的单片机,那么只有初始化寄存器,和直接读取就可以了,这类似于串口,如果没有的话就只好按spi的时序写io的电平咯