硬件SPI与软件模拟SPI速度区别实测
目前为了程序移植方便,许多以SPI接口的芯片所提供的参考代码大多都使用的是软件SPI,比如笔者用过的存储芯片W25Q16,SPI接口驱动的OLED显示屏,LORA芯片SX1278等。
最近为了驱动彩色OLED显示屏,为了提高显示刷新率,需要对程序代码进行优化。于是,将相关SPI驱动从软件模拟转换为硬件控制,就势在必行了。
然而,到底软件模拟SPI和硬件SPI有多大的速度区别呢?
1.系统配置
为了测试的公平性,选用同样的ARM(STM32L151C8T6)以及系统时钟(32M),配置如下图所示:
2.软件模拟SPI
选用了最常用的软件模拟SPI进行写操作,以单字节写指令为例,代码如下:
void SPI_Write_data(u8 dat)
{
u8 i