cfjlma 发表于 2019-8-3 17:09:39

HAL_SPI_TransmitReceive与HAL_SPI_TransmitReceive_DMA区别?

使用stm32cubeide读取flash(w25q)的id,用HAL_SPI_TransmitReceive可以读取,但用HAL_SPI_TransmitReceive_DMA函数读取出来的都是0xFF,不知道是什么原因?

wenyangzeng 发表于 2019-8-3 21:51:33

要使能SPI的DMA,应该先配置SPI的DMA各项参数的。先参考ST官方的例程


byronsong 发表于 2019-8-5 08:30:37

HAL_SPI_TransmitReceive 是查询的方式收发,是阻塞式操作,函数执行完即可使用收发缓冲区的数据;
HAL_SPI_TransmitReceive_DMA是非阻塞操作,通过硬件DMA及其中断实现的,需在各个中断的回调函数中,读写数据或做其它操作。

ikxlf 发表于 2019-8-5 10:58:43

后面那个函数需要配置DMA,你有没有配置,没有肯定读不到数据

pig141 发表于 2020-11-26 14:00:16

wenyangzeng 发表于 2019-8-3 21:51
要使能SPI的DMA,应该先配置SPI的DMA各项参数的。先参考ST官方的例程

~~~~~~~~~~~~
页: [1]
查看完整版本: HAL_SPI_TransmitReceive与HAL_SPI_TransmitReceive_DMA区别?