STM32Cube_FW_F2_V1.1.0库(HAL库)SPI通信的HAL_SPI_Transmit函数;HAL_SPI_Receive函数;HAL_SPI_TransmitReceive函数的困惑
小妹困惑已久,请牛人指导!!!!!
HAL_SPI_Transmit函数;HAL_SPI_Receive函数;HAL_SPI_TransmitReceive函数,这三个函数困惑了我很久,看函数名称,HAL_SPI_Transmit函数貌似是用来发送数据的,HAL_SPI_TransmitReceive函数用来接收数据,那HAL_SPI_TransmitReceive函数用在什么时候?而且这个函数的参数既有发送数据也有接收数据,如果调用,发送和接收参数都要赋值了?如果赋值了,等执行完这个函数后,我的发送和接受参数的值如何变化?
HAL_SPI_Transmit函数;HAL_SPI_Receive函数;HAL_SPI_TransmitReceive函数,这三个函数困惑了我很久,看函数名称,HAL_SPI_Transmit函数貌似是用来发送数据的,HAL_SPI_TransmitReceive函数用来接收数据,那HAL_SPI_TransmitReceive函数用在什么时候?而且这个函数的参数既有发送数据也有接收数据,如果调用,发送和接收参数都要赋值了?如果赋值了,等执行完这个函数后,我的发送和接受参数的值如何变化?
7 个回复
admin
赞同来自:
SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口。
是一种高速的,全双工,同步的通信总线.
HAL_SPI_TransmitReceive
就是用在了这里,同步传输
即,在主机和从机同时传递数据,依据的都是SCK主机提供的时钟,嗯,就这样
浅浅
赞同来自:
匿名用户
赞同来自:
好心情
赞同来自: 往事随风1995 、※风、De缘故※ 、逆光穿行 、missing 、xc123 、苏脉更多 »
HAL_SPI_Receive函数 只接受,不发送(实际是发送0xff)
HAL_SPI_TransmitReceive 发送接收同步进行,这个才符合SPI的工作原理,前两个只能说是SPI首发的一种特殊情况
alloycn
赞同来自:
函数里面有注释:
Transmit an amount of data in blocking mode.
Receive an amount of data in blocking mode.
Transmit and Receive an amount of data in blocking mode.
往事随风1995
赞同来自: 鸟高
按好心情说的去理解,我这边也有现成的spi主从通信的代码,需要的话发给你
KIC,锡膏测厚仪
赞同来自: Jeekate
不能理解HAL_SPI_TransmitReceive,从机在没有接收完主机发来的指令,怎么知道返回什么数据呢?怎么同步传输呢?