发 帖  
原厂入驻New
[问答] 按照教程写完如下函数后,能够进行仿真实验吗
12 SPI
分享
请问我按照教程写完如下函数后 ,能够进行仿真实验吗?

u8 SPIx_ReadWriteByte(u8 TxData){u8 retry=0; while((SPI1->SR&1<<1)==0)//等待发送区空{retry++;IF(retry>200)return 0;}  SPI1->DR=TxData;   //发送一个byte retry=0;while((SPI1->SR&1<<0)==0) //等待接收完一个byte  {retry++;if(retry>200)return 0;}      return SPI1->DR;          //返回收到的数据    }
也就是说 我写完这个函数后不对W25X16进行任何编程和操作,

我想跳过W25X16后直接操作main函数如下:
int main(void)


     u8 i;
     /**STM32初始化 从略**/
     while(1)
    {
i=SPIx_ReadWriteByte(0x09);
         printf("%d",i);
    }
  }
就是为了检测spi是否可用,请问这样做可以吗?
如果可以 应该返回 9 才对,
为什么返回值总是为0
非常感谢!
0
5 天前   评论 分享淘帖 邀请回答
4个回答
我觉得往数据寄存器里写 i=SPIx_ReadWriteByte(0x09);然后寄存器再接收这个数据:0x09;不是9吗?
 我对spi还不是很了解 ,这是我的见解,
5 天前 评论

举报

为什么会接收到你的9?
你短接了MOSI和MISO么?
虽然原子兄不明白我的意思  但是我明白你的意思了,我没有接从设备  不会有数据的。。。

只有小组成员才能发言,加入小组>>

60个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表