有关STM32通过硬件SPI实现16为数据传输的问题

2019-07-20 07:48发布

请教大家一个问题,如何实现SPI的16位数据输出,我看封装的函数中他们的移位寄存器是8位的,而16位的如何传输,求解答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
20条回答
xiaoff
2019-07-22 03:21
屋脊雀 发表于 2018-6-1 12:11
1 我认为我没有理解错。
uint16_t        DeTxBuffer[1] 是指DeTxBuffer所存储的数据是16bit,而非DeTxB ...

如果你的DataSize = SPI_DATASIZE_16BIT;而你的数据是8bit,那么16个数据传输的时钟仅仅有8个有效,其余的会用0进行补齐。
如果你的DataSize = SPI_DATASIZE_8BIT;而你的数据是16bit,依然可以发送,但是时钟因为被设定成8个,所有你只能分两次发送结束。除非溢出时间被你设置的太短,传输被中断。具体可以查看函数库中
      static void SPI_2linesRxISR_8BIT(struct __SPI_HandleTypeDef *hspi)
对此有所描述。

一周热门 更多>