
32bit SPI使用DMA 初次不触发SPI中断 第二次发送不触发DMA中断
STM32c031c6 SPI Slave Transmit Only模式的疑问
USB Device + FatFS + 外挂 flash
I2C从模式编程之空闲状态
stm32mp257_spidev如何在arm中正常使用?
简单聊聊STM32的SPI外设
Stem32CubeIDE能像Keil一样指定不同文件下的代码编译到不同的FLASH地址吗?比如部分代码存放到内部FLASH,另一部分存放到外部QSPI的FLASH中
HAL库SPI DMA批量传输数据量最大为2^16,有没有办法改成上限为2^32
关于外部事件(EXTI0)触发SPI读取数据
STM32 SPI从机用DMA方式实现全双工,数据传输过程中出错。
这幅图是从机吗?从机是不主动发时钟的,就算cs信号拉低,但是它要等时钟过来才收发数据。
片选使能肯定是主机拉低的阿
这是片选和时钟信号
嗯,不是太了解本质原因,说一下我的理解。就是一些SPI的datasheet上,有电气特征你可以查看以下,例如W25Q64BV的手册:
它有一个片选于CLK之间的时间,就像任何IC一样,从复位到系统时钟工作是需要有一个时间的,图中是5ns,所以你比5ns短就从MOSI发送数据的话,从器件可能还没工作呢。当然,根据我有限的使用经验,好像收完数据以后直接关掉片选一般问题不大
如果想最快,那么就用硬件控制片选信号,这样最快。
其实楼主不用太纠结,既然仅仅多加了一句控制IO的语句,紧接着就是发送,所以总体时间也就是多了一句IO翻转的时间而已,即使片选靠近发送时刻,总体并没有差多少。
从示波器显示来看,片选使能到收发前的时间段1时间为20微秒,收发时钟脉冲结束后到片选失能时间段2是30微妙,远远大于理论值;
从示波器显示来看,片选使能到收发前的时间段1时间为20微秒,收发时钟脉冲结束后到片选失能时间段2是30微妙,远远大于理论值
还有一部分原因是中断上下文切换造成的,但我测过中断上下文切换耗时不到1微秒