发布STM32H7的SPI DMA方式双机通信教程和案例(2022-04-11)
教程和例子下载:
https://www.armbbs.cn/forum.php?mod=viewthread&tid=86980
接线:
_________________________ _____________________________
| ______________| |______________________ |
| | SPI1 | | SPI1 | |
| | | | | |
| | CLK(PB3) |______________________|(PB3)CLK | |
| | | | | |
| | MISO(PB4) |______________________|(PB4)MISO | |
| | | | | |
| | MOSI(PB5) |______________________|(PB5)MOSI | |
| | | | | |
| | NSS(PG10) |______________________|(PG10)NSS | |
| |______________| |______________________| |
| | | |
| | | |
| | | |
| GND|______________________|GND |
| | | |
|_STM32H7 Master _________| |_STM32H7 Slave ______________|
主机:
https://img.anfulai.cn/dz/attachment/forum/202204/09/025924kjozcwh711vhxlx7.png
从机:
https://img.anfulai.cn/dz/attachment/forum/202204/09/025951htopach6o8pzdhhz.png
教程目录:
https://img.alicdn.com/imgextra/i4/299314119/O1CN01zPmgnW1gIY95rKClI_!!299314119.png
{:8:} 本帖最后由 emwin 于 2022-4-11 11:18 编辑
大家根据自己接线的稳定性,可以适当调节 SPI 主机和从机的时钟速度,其中从机的时钟速度是可以
高于主机速度的,这样通信的容错性更好些。
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:
The SPI working in slave mode handles data flow using the serial interface clock derived
from the external SCK signal provided by external master SPI device. That is why the SPI
slave is able to receive and send data even when the spi_pclk and spi_ker_ck clock
signals are inactive.
emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:
看来H7 HAL的SPI从机有坑,我还特地升级到最新的1.11库,从机下,我去设置时钟,设置到2分频,开机直接挂了。必须低分频才正常,看来坑不小。 emwin 发表于 2022-4-11 11:15
后半句不准确,分频寄存器只对主模式有效,从模式性能跟它没关系,手册上是这么写的:
晚上确定了,设置各种分频都正常了。是我程序配置的问题。
从机确实无关。 如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板:lol zenghouyun 发表于 2022-5-2 17:12
如果能搞一个V7板子与V6板子通信的例程就更好了,因为大多数学员都没有两块V7板,我分别有V5、V6、V7板
好的,后面增加V5,V6的双机。 硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用推挽输出的时候不是短路了吗,输出端的3.3和输入端的地 yuanzhongda 发表于 2023-11-5 08:44
硬汉哥,请教个问题,这个spi和 usart在做复用功能的时候gpio上下拉我看很多程序是nopull,这样发送端使用 ...
SPI推荐带上拉,效果好
UART的话是RX和TX接的。SPI是主从方式区分的。 楼主,我用这个例子,两个MCU都是480M/400 ,SPI 2分频 不能跑通,还有额外设置吗? 这个例子,还有一个问题, 主MCU SPI 4分频 时钟为60M ,实际效果差不多30M, 用示波器看 SCK信号 ,两个字节的时钟之间有个空闲,SCK信号不连续 841291522gyl 发表于 2024-3-14 10:09
这个例子,还有一个问题, 主MCU SPI 4分频 时钟为60M ,实际效果差不多30M, 用示波器看 SCK信号 ,两个字节 ...
hspi->Init.MasterInterDataIdleness=SPI_MASTER_INTERDATA_IDLENESS_10CYCLE应该是没改这个时间导致的 841291522gyl 发表于 2024-3-14 10:06
楼主,我用这个例子,两个MCU都是480M/400 ,SPI 2分频 不能跑通,还有额外设置吗?
SPI从机不能支撑这么高的主机速度。
页:
[1]