wxqhit 发表于 2024-1-8 15:59:26

使用两路spi ,想同步传输接收数据,采用hal库,发现不能同时!

版主,各有大牛
       我现在用的是stm32F743mcu,使用了两路spi采集两路adc。       现在我用的的hal库,里面的函数。如下图   问题时,想在同一个时间点,启动两路spi,采集。我理解应该时很快的。但是波形看spi的时钟时有先后的顺序。如何解决这个问题?就用st的hal库。 谢谢大家和版主 硬汉


2859932063 发表于 2024-1-8 16:47:42

如果spi是在不同的DMA上,那就使用DMA吧

wxqhit 发表于 2024-1-8 17:17:35

不知道我发的贴子为什么没有图片,只能再补三张图片,说明一下。

Edmund1964 发表于 2024-1-8 17:59:58

给你个简易的方法解决这问题
用两个SPI, 比如SPI1 & SPI2, SPI1配置为主,SPI2配置为从, 两个时钟线接一块, 这就轻松的做到你说的同步了。

wxqhit 发表于 2024-1-8 23:04:17

谢谢,Edmund1964的建议。


还有一个疑问,就是st提供的hal的spi函数,为什么效率那么低。

函数调用倒是简单了,但是内容为了做到兼容,有大量的额外操作。

有高手在尝试,用hal库,做简单的寄存器操作吗?

Edmund1964 发表于 2024-1-8 23:15:09

wxqhit 发表于 2024-1-8 23:04
谢谢,Edmund1964的建议。




hal是出了名的浪费资源的, 想省些就用LL或寄存器吧

Edmund1964 发表于 2024-1-8 23:23:02

wxqhit 发表于 2024-1-8 23:04
谢谢,Edmund1964的建议。




。。。。。。。。。。

eric2013 发表于 2024-1-9 08:51:38

wxqhit 发表于 2024-1-8 23:04
谢谢,Edmund1964的建议。




可以用定时器触发实现SPI+DMA, 这样同步就非常好了,比软件控制准。

wxqhit 发表于 2024-1-9 16:09:32

谢谢@Edmund1964 @eric2013

萌军总司令 发表于 2024-1-10 18:01:20

eric2013 发表于 2024-1-9 08:51
可以用定时器触发实现SPI+DMA, 这样同步就非常好了,比软件控制准。

@eric2013 硬汉哥,您手的定时器触发SPI+DMA的方式,能用在F4上吗?
能简单说说思路吗?
页: [1]
查看完整版本: 使用两路spi ,想同步传输接收数据,采用hal库,发现不能同时!