可以直接搜索该MCU的引脚定义图,如果SPI、IIC连接到相应的SPI、IIC接口上,那99%使用的是硬件的SPI、IIC方式,如果连接的引脚不是SPI、IIC接口,则100%使用软件模拟。
如果MCU硬件上集成了SPI、IIC外设,利用起来,效率上提高很大,但可能存在像STM32这样的,有IIC但还是很多人宁可模拟的情况。如果MCU上没有SPI、IIC外设,那只能够模拟了。
硬件IIC/SPI ,使用的时候,只需初始化,配置好时钟,把需要发送的数据写入寄存器,收发都有中断。
这样能减少对CPU的占用。
软件IIC/SPI 则需要自己控制时序。
虽然硬件使用效率很高,但是移植的通用性不强,相反,软件的IIC/SPI移植起来就很方便。
如果mcu接口不是spi接口但是和spi设备通讯,那就是软spi
如果mcu接口是spi接口和设备连接,大部分情况应该是硬spi,少数情况可能是软spi
简单讲,硬件SPI或IIC是靠寄存器来完成通讯
软件的必须自己写读写时序
看代码就可以区分
对的,软件因为要模拟通信协议,所以根据协议安排启动开始时序,一般软通信时序部分稍微麻烦点,至于通信部分,不管是硬件还是软件传输数据是一样的,主要还是代码模拟时序部分!
看通讯结果你看不出来的,但是看代码很容易,硬件SPI或者IIC的代码和软件模拟的完全不一样。硬件的引脚都是复用功能,软件的是普通IO
看你的底层时序是如何产生的,软件写的就是模拟的,如果没有,只是初始化单片机的有关部分就是硬件的
直观就看程序代码,看看 spi iic 最底层是操作的寄存器,还是反转 IO 口实现的。
或者看芯片外设,板子外设也行,如果外设都没有 spi iic ,那肯定是 软实现的。
如果又 spi iic 外设,就他初始化了没有,用了没有,用了才是硬件 spi iIC,没用也是 软实现。