• 麻烦各位看一下。2片stm32进行SPI通信。下面分别是主机从机的程序。但主机接收到的数据出错了。

    万梓俊
    万梓俊

    刚算是了解清楚了SPI的原理,动手做个实验。在SPI主从通信中。我想让主机跟从机交换一次数据。从机程序里直接往SPI-DR里赋值了,那么在主机时钟信号到来的时候通信就自动开始了不是吗?

    然后我接上了逻辑分析仪观察。发现主机输出的数据是正确的,但主机接收回来的返回值并不是0xf0;而是00111100..但我现在没有JLINK,我只能观察到IO的变换。麻烦朋友们看看程序是不是有问题呢?

    spi1.jpgspi2.jpg
    • over 5 years ago
    • 中文社区
    • 中文社区论区
  • 我有没有理解错STM32的SPI通信方式呢???

    万梓俊
    万梓俊

    最近在学习stm32的spi方式。了解到了spi通信方式实际上是主机的发送寄存器和从机的发送寄存器以移位的方式进行数据交换,是基于来自主机的时钟来完成每一个动作的。

    那如果我在主机里装载了数据,而从机是没有装载数据的,那这样子的话,假设数据是8bit的,在8个clock之后,主机在从机那交换得到的是一个什么样的返回值?是全1呢?还是说

    全0?或者是一串不确定的数?我觉得在对从机初始化之后,它的发送寄存器会有一个初始值,如果从机没有写数据修改它的话;那主机得到的就是这个(从机发送寄存器的)初始值了。

    在spi只读的时候不需要理会发送过去的值…

    • over 5 years ago
    • 中文社区
    • 中文社区论区
  • View related content from anywhere
  • More
  • Cancel